Browse Source

消贷系列生成新车买卖合同

master
God 1 year ago
parent
commit
d5250b30f2
  1. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java
  2. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java
  3. 44
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/xcmmContractQuery.java
  4. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java
  5. 392
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  6. 17
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  7. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/LoanHomevisitPrepFeign.java
  8. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/LoanHomevisitPrepFeignFallback.java
  9. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepRest.java
  10. 37
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java

@ -155,6 +155,9 @@ public interface CommonContractFeign {
@PostMapping("/printConfirm")
public ResultBean<List<PrintConfirmVo>> printConfirm(@RequestBody PrintConfirmDto dto);
@ApiOperation(value = "新车买卖合同打印pdf")
@PostMapping("/xcmmContract")
public ResultBean<List<PrintConfirmVo>> xcmmContract(@RequestBody PrintConfirmDto dto);
/******************************************************新车买卖合同审核(流程)******************************************************/

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author liuguohui
* @version 1.0
@ -24,6 +26,9 @@ public class PrintConfirmDto implements Dto {
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("贷款人sid")
private String borrowerSid;
@ApiModelProperty("合同编号")
private String contractNo;

44
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/xcmmContractQuery.java

@ -0,0 +1,44 @@
package com.yxt.anrui.base.api.commoncontract;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("新车买卖合同条件")
@Data
public class xcmmContractQuery implements Query {
@ApiModelProperty("合同sid")
private String contractSid;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("销售订单sid")
private String saleOrderSid;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("是否优惠:1是0否")
private String discountKey;
@ApiModelProperty("是否在保险公司购买保险:1是0否")
private String insuranceKey;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("甲方主体")
private String partyA;
@ApiModelProperty("乙方主体")
private String partyB;
@ApiModelProperty("预估报价方案")
private String revalencySchemeKey;
}

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java

@ -441,6 +441,11 @@ public class CommonContractRest implements CommonContractFeign {
return commonContractService.printConfirm(dto);
}
@Override
public ResultBean<List<PrintConfirmVo>> xcmmContract(PrintConfirmDto dto) {
return commonContractService.xcmmContract(dto);
}
public List getSheetVal(Sheet sheet, int[] resultCell) throws ParseException {
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
List<CommonContract> punishmentList = new ArrayList<>();

392
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java

@ -47,6 +47,7 @@ import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInfor
import com.yxt.anrui.crm.api.crmcustomer.CrmCustomerFeign;
import com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerFileDDto;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleFeign;
@ -801,29 +802,56 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
private String genCarSaleContract(PrintConfirmDto dto, Map<String, Object> map, AppOrderDetailsVo appOrderDetailsVo) {
String ftl = "";
AppOrderPriceInfoVo priceInfo = appOrderDetailsVo.getPriceInfo();
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
//车架号集合
List<String> stringList = new ArrayList<>();
//查询台数
String num = priceInfo.getNumber();
String num = "";
if (StringUtils.isNotBlank(dto.getBorrowerSid())){
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(dto.getBusSid(),dto.getBorrowerSid()).getData();
num = String.valueOf(busSalesOrderVehicles.size());
for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) {
stringList.add(busSalesOrderVehicle.getLinkNo().substring(busSalesOrderVehicle.getLinkNo().length() - 8));
}
}else {
num = priceInfo.getNumber();
stringList = orderModelInfoVo.getOrderVinList();
}
//单台成交价
String transactionPrice = priceInfo.getSingleFinalPrice();
String remarks = "";
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
//获取模板
ftl = "existingvehicles";
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
List<String> stringList = orderModelInfoVo.getOrderVinList();
if (stringList.size() > 0) {
remarks = "数量" + num + "台,单台成交价:" + transactionPrice + "元。车架号:" + String.join("、", stringList);
} else {
remarks = "数量" + num + "台,单台成交价:" + transactionPrice + "元。";
}
} else {
map.put("dayOne", appOrderDetailsVo.getDepositInfo().getPayDepositDays());
map.put("dayOne", new BigDecimal(appOrderDetailsVo.getDepositInfo().getDeposit()).multiply(new BigDecimal(num)).toString());
//获取模板
ftl = "orderacar";
remarks = "数量" + num + "台,单台成交价:" + transactionPrice + "元。";
}
map.put("remarks", remarks);
//车价合计
String totalPrice = new BigDecimal(priceInfo.getSingleFinalPrice()).multiply(new BigDecimal(num)).toString();
map.put("totalPrice", totalPrice);
//车价合计大写
String priceRemarks = "";
if (StringUtils.isNotBlank(totalPrice)) {
priceRemarks = TransformMoney.transform(TransformMoney.getDecimalStr(Double.valueOf(totalPrice).doubleValue()));
}
map.put("priceRemarks", priceRemarks);
//订金合计
AppOrderDepositInfoVo depositInfo = appOrderDetailsVo.getDepositInfo();
String depositTotal = new BigDecimal(depositInfo.getDeposit()).multiply(new BigDecimal(num)).toString();
if ("0".equals(depositTotal)) {
map.put("depositTotal", "/");
} else {
map.put("depositTotal", depositTotal);
}
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
@ -845,29 +873,56 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
private String genCarSaleContract2(PrintConfirmDto dto, Map<String, Object> map, AppOrderDetailsVo appOrderDetailsVo) {
String ftl = "";
AppOrderPriceInfoVo priceInfo = appOrderDetailsVo.getPriceInfo();
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
//车架号集合
List<String> stringList = new ArrayList<>();
//查询台数
String num = priceInfo.getNumber();
String num = "";
if (StringUtils.isNotBlank(dto.getBorrowerSid())){
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(dto.getBusSid(),dto.getBorrowerSid()).getData();
num = String.valueOf(busSalesOrderVehicles.size());
for (BusSalesOrderVehicle busSalesOrderVehicle : busSalesOrderVehicles) {
stringList.add(busSalesOrderVehicle.getLinkNo().substring(busSalesOrderVehicle.getLinkNo().length() - 8));
}
}else {
num = priceInfo.getNumber();
stringList = orderModelInfoVo.getOrderVinList();
}
//单台成交价
String transactionPrice = priceInfo.getSingleFinalPrice();
String remarks = "";
if ("现车".equals(appOrderDetailsVo.getOrderType())) {
//获取模板
ftl = "existingvehicles2";
AppOrderModelInfoVo orderModelInfoVo = appOrderDetailsVo.getModelInfo();
List<String> stringList = orderModelInfoVo.getOrderVinList();
ftl = "existingvehicles";
if (stringList.size() > 0) {
remarks = "数量" + num + "台,单台成交价:" + transactionPrice + "元。车架号:" + String.join("、", stringList);
} else {
remarks = "数量" + num + "台,单台成交价:" + transactionPrice + "元。";
}
} else {
map.put("dayOne", appOrderDetailsVo.getDepositInfo().getPayDepositDays());
map.put("dayOne", new BigDecimal(appOrderDetailsVo.getDepositInfo().getDeposit()).multiply(new BigDecimal(num)).toString());
//获取模板
ftl = "orderacar";
remarks = "数量" + num + "台,单台成交价:" + transactionPrice + "元。";
}
map.put("remarks", remarks);
//车价合计
String totalPrice = new BigDecimal(priceInfo.getSingleFinalPrice()).multiply(new BigDecimal(num)).toString();
map.put("totalPrice", totalPrice);
//车价合计大写
String priceRemarks = "";
if (StringUtils.isNotBlank(totalPrice)) {
priceRemarks = TransformMoney.transform(TransformMoney.getDecimalStr(Double.valueOf(totalPrice).doubleValue()));
}
map.put("priceRemarks", priceRemarks);
//订金合计
AppOrderDepositInfoVo depositInfo = appOrderDetailsVo.getDepositInfo();
String depositTotal = new BigDecimal(depositInfo.getDeposit()).multiply(new BigDecimal(num)).toString();
if ("0".equals(depositTotal)) {
map.put("depositTotal", "/");
} else {
map.put("depositTotal", depositTotal);
}
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
@ -1617,6 +1672,319 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
return r;
}
public ResultBean<List<PrintConfirmVo>> xcmmContract(PrintConfirmDto dto) {
ResultBean<List<PrintConfirmVo>> rb = ResultBean.fireFail();
List<PrintConfirmVo> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
//客户信息
CrmCustomerTemp crmCustomerTemp = crmCustomerTempFeign.fetchEntity(dto.getCustomerSid()).getData();
//查询销售订单的信息
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderFeign.getSaleOrderDetails(dto.getBusSid());
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData();
//查询销售订单的车型信息
AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo();
//根据车型sid查询车型的全称
BaseVehicleModel baseVehicleModel = baseVehicleModelService.fetchBySid(appOrderModelInfoVo.getModelSid());
BaseModelConfig baseModelConfig = baseModelConfigService.fetchBySid(appOrderModelInfoVo.getConfigSid());
String modelName = "车型:";
StringBuilder modeNameValue = new StringBuilder();
//车型名称(小名):系列+驱动+功能+空格+版本
if (StringUtils.isNotBlank(baseVehicleModel.getProductLineValue()) && !"-".equals(baseVehicleModel.getProductLineValue())) {
modeNameValue.append(baseVehicleModel.getProductLineValue());
}
//驱动
if (StringUtils.isNotBlank(baseVehicleModel.getDriveFormValue()) && !"-".equals(baseVehicleModel.getDriveFormValue())) {
modeNameValue.append(baseVehicleModel.getDriveFormValue());
}
//功能
if (StringUtils.isNotBlank(baseVehicleModel.getVehicleTypeValue()) && !"-".equals(baseVehicleModel.getVehicleTypeValue())) {
modeNameValue.append(baseVehicleModel.getVehicleTypeValue());
}
//版本
if (StringUtils.isNotBlank(baseVehicleModel.getVehicleVersionValue()) && !"-".equals(baseVehicleModel.getVehicleVersionValue())) {
modeNameValue.append(baseVehicleModel.getVehicleVersionValue());
}
modelName = modelName + modeNameValue.toString();
//车型全名称:发动机型号(空格)xxx马力+燃料+排放标准发动机、变速箱、缓速器、
// 后桥(若存在“桥”字样后不带“后桥”)、速比、轴距、悬架(若存在“悬架”字样后不带“悬架”)、
// 鞍座(若存在“鞍座”字样后不带“鞍座”)、燃料箱(若存在“油箱”字样后不带“燃料箱”)、轮胎(若存在“胎”字样后不带“轮胎”)、
// 轮毂材质、护轮罩。换行
//驾驶室+颜色驾驶室、导流罩、保险杠、后视镜、座椅、空调、独立热源、多媒体
StringBuilder modelAllName = new StringBuilder();
//发动机型号
if (StringUtils.isNotBlank(baseVehicleModel.getEngineTypeValue()) && !"-".equals(baseVehicleModel.getEngineTypeValue())) {
modelAllName.append(baseVehicleModel.getEngineTypeValue());
}
//马力
if (StringUtils.isNotBlank(baseVehicleModel.getPowerValue()) && !"-".equals(baseVehicleModel.getPowerValue())) {
modelAllName.append(" ").append(baseVehicleModel.getPowerValue()).append("马力");
}
//燃料
if (StringUtils.isNotBlank(baseVehicleModel.getFuelTypeValue()) && !"-".equals(baseVehicleModel.getFuelTypeValue())) {
modelAllName.append(baseVehicleModel.getFuelTypeValue());
}
//排放标准
if (StringUtils.isNotBlank(baseVehicleModel.getEmissionStandardValue()) && !"-".equals(baseVehicleModel.getEmissionStandardValue())) {
modelAllName.append(baseVehicleModel.getEmissionStandardValue());
}
modelAllName.append("发动机");
//变速箱
if (StringUtils.isNotBlank(baseVehicleModel.getGearboxTypeValue()) && !"-".equals(baseVehicleModel.getGearboxTypeValue())) {
modelAllName.append("、").append(baseVehicleModel.getGearboxTypeValue()).append("变速箱");
}
//缓速器
if (StringUtils.isNotBlank(baseModelConfig.getSlowMachine()) && !"-".equals(baseModelConfig.getSlowMachine())) {
modelAllName.append("、").append(baseModelConfig.getSlowMachine());
}
//后桥
if (StringUtils.isNotBlank(baseModelConfig.getRearAxleValue()) && !"-".equals(baseModelConfig.getRearAxleValue())) {
modelAllName.append("、").append(baseModelConfig.getRearAxleValue());
if (!baseModelConfig.getRearAxleValue().contains("桥")) {
modelAllName.append("后桥");
}
}
//速比
if (StringUtils.isNotBlank(baseModelConfig.getRearAxleRatio()) && !"-".equals(baseModelConfig.getRearAxleRatio())) {
modelAllName.append("、").append(baseModelConfig.getRearAxleRatio()).append("速比");
}
//轴距
if (StringUtils.isNotBlank(baseModelConfig.getWheelbase()) && !"-".equals(baseModelConfig.getWheelbase())) {
modelAllName.append("、").append(baseModelConfig.getWheelbase()).append("mm轴距");
}
//悬架
if (StringUtils.isNotBlank(baseModelConfig.getSuspension()) && !"-".equals(baseModelConfig.getSuspension())) {
modelAllName.append("、").append(baseModelConfig.getSuspension());
if (!baseModelConfig.getSuspension().contains("悬架")) {
modelAllName.append("悬架");
}
}
//鞍座
if (StringUtils.isNotBlank(baseModelConfig.getSaddle()) && !"-".equals(baseModelConfig.getSaddle())) {
modelAllName.append("、").append(baseModelConfig.getSaddle());
if (!baseModelConfig.getSaddle().contains("鞍座")) {
modelAllName.append("鞍座");
}
}
//燃料箱
if (StringUtils.isNotBlank(baseModelConfig.getFuelTank()) && !"-".equals(baseModelConfig.getFuelTank())) {
modelAllName.append("、").append(baseModelConfig.getFuelTank());
if (!baseModelConfig.getFuelTank().contains("油箱")) {
modelAllName.append("燃料箱");
}
}
//轮胎
if (StringUtils.isNotBlank(baseModelConfig.getTireSize()) && !"-".equals(baseModelConfig.getTireSize())) {
modelAllName.append("、").append(baseModelConfig.getTireSize());
if (!baseModelConfig.getTireSize().contains("胎")) {
modelAllName.append("轮胎");
}
}
//轮毂材质
if (StringUtils.isNotBlank(baseModelConfig.getHubMaterial()) && !"-".equals(baseModelConfig.getHubMaterial())) {
modelAllName.append("、").append(baseModelConfig.getHubMaterial());
}
//护轮罩
if (StringUtils.isNotBlank(baseModelConfig.getTireCover()) && !"-".equals(baseModelConfig.getTireCover())) {
modelAllName.append("、").append(baseModelConfig.getTireCover());
}
StringBuilder modelAllName2 = new StringBuilder();
modelAllName2.append("\t");
//驾驶室
if (StringUtils.isNotBlank(baseModelConfig.getSpecification()) && !"-".equals(baseModelConfig.getSpecification())) {
modelAllName2.append(baseModelConfig.getSpecification());
}
//颜色
if (StringUtils.isNotBlank(baseModelConfig.getCarColor()) && !"-".equals(baseModelConfig.getCarColor())) {
modelAllName2.append("/").append(baseModelConfig.getCarColor()).append("驾驶室");
}
//导流罩
if (StringUtils.isNotBlank(baseModelConfig.getBaffleModel()) && !"-".equals(baseModelConfig.getBaffleModel())) {
modelAllName2.append("、").append(baseModelConfig.getBaffleModel());
}
//保险杠
if (StringUtils.isNotBlank(baseModelConfig.getBumper()) && !"-".equals(baseModelConfig.getBumper())) {
modelAllName2.append("、").append(baseModelConfig.getBumper());
}
//后视镜
if (StringUtils.isNotBlank(baseModelConfig.getRearViewMirror()) && !"-".equals(baseModelConfig.getRearViewMirror())) {
modelAllName2.append("、").append(baseModelConfig.getRearViewMirror());
}
//座椅
if (StringUtils.isNotBlank(baseModelConfig.getSeat()) && !"-".equals(baseModelConfig.getSeat())) {
modelAllName2.append("、").append(baseModelConfig.getSeat());
if (!baseModelConfig.getSeat().contains("椅")) {
modelAllName2.append("座椅");
}
}
//空调
if (StringUtils.isNotBlank(baseModelConfig.getAirConditioner()) && !"-".equals(baseModelConfig.getAirConditioner())) {
modelAllName2.append("、").append(baseModelConfig.getAirConditioner());
}
//独立热源
if (StringUtils.isNotBlank(baseModelConfig.getIndependentSources()) && !"-".equals(baseModelConfig.getIndependentSources())) {
modelAllName2.append("、").append(baseModelConfig.getIndependentSources());
}
//多媒体
if (StringUtils.isNotBlank(baseModelConfig.getMultimedia()) && !"-".equals(baseModelConfig.getMultimedia())) {
modelAllName2.append("、").append(baseModelConfig.getMultimedia());
}
//特殊配置说明
if (StringUtils.isNotBlank(appOrderModelInfoVo.getSpecialInstructions())) {
modelAllName2.append("、").append("特殊配置说明:" + appOrderModelInfoVo.getSpecialInstructions());
}
modelAllName2.append("。");
String modelConfig = "配置:" + modelAllName + "。";
//上装:外廓尺寸+颜色+上装名称、板材厚度、板材材质、篷布滑道、冷藏冷机、自卸液压盖板、底板加热、更多配置
if (appOrderDetailsVo.getTopInfo() != null) {
AppOrderTopInfoVo topInfo = appOrderDetailsVo.getTopInfo();
String topName = appOrderDetailsVo.getTopMessage();
topName = "上装:制造尺寸与公告一致、" + topName + "。";
//只有为公司采购时才显示
if ("01".equals(topInfo.getBuyTypeKey())) {
map.put("topName", topName);
}
}
//优惠说明
String discountDetail = "";
if (StringUtils.isNotBlank(appOrderDetailsVo.getTotaldiscount())) {
List<AppOrderDiscountListVo> discountList = appOrderDetailsVo.getDiscountList();
discountDetail = "优惠说明:赠送价值" + appOrderDetailsVo.getTotaldiscount() + "元优惠包。包括";
for (int iii = 0; iii < discountList.size(); iii++) {
AppOrderDiscountListVo vv = discountList.get(iii);
String discountName = vv.getDiscountName();
if (iii == discountList.size() - 1) {
discountDetail = discountDetail + "价值" + vv.getPrice() + "元" + discountName + vv.getNumber() + "份(每份包含" + vv.getDiscountExplain() + ")。";
} else {
discountDetail = discountDetail + "价值" + vv.getPrice() + "元" + discountName + vv.getNumber() + "份(每份包含" + vv.getDiscountExplain() + "),";
}
}
map.put("discountDetail", discountDetail);
}
//交纳订金
AppOrderDepositInfoVo depositInfo = appOrderDetailsVo.getDepositInfo();
String depositTotal = depositInfo.getDepositTotal();
if ("02".equals(depositInfo.getDepositTypeKey())) {
ResultBean<List<BusDepositFictitiousDetailsVo>> listResultBean = busDepositFictitiousFeign.detailsList(depositInfo.getSid());
List<BusDepositFictitiousDetailsVo> listResultBeanData = listResultBean.getData();
listResultBeanData.removeAll(Collections.singleton(null));
if (!listResultBeanData.isEmpty()) {
String depositRemarks = "(其中";
for (int ii = 0; ii < listResultBeanData.size(); ii++) {
BusDepositFictitiousDetailsVo v = listResultBeanData.get(ii);
if (StringUtils.isNotBlank(v.getPayPath())) {
depositRemarks = depositRemarks + v.getDraweeName() + "在";
} else {
depositRemarks = depositRemarks + "乙方在";
}
if (ii == listResultBeanData.size() - 1) {
String b = v.getPaymentDate() + "转入甲方的" + v.getDeposit() + "元中的" + v.getPrice() + "元用于本次订金。";
depositRemarks = depositRemarks + b;
} else {
String b = v.getPaymentDate() + "转入甲方的" + v.getDeposit() + "元中的" + v.getPrice() + "元用于本次订金,";
depositRemarks = depositRemarks + b;
}
}
depositRemarks = depositRemarks + ")";
map.put("depositRemarks", depositRemarks);
}
}
map.put("createOrgName", dto.getCreateOrgName());
map.put("modelConfigs", modelAllName2.toString());
map.put("customerName", dto.getCustomerName());
map.put("mobile", crmCustomerTemp.getMobile());
map.put("idNo", crmCustomerTemp.getIDNumber());
map.put("modelName", modelName);
map.put("modelConfig", modelConfig);
if ("1".equals(appOrderDetailsVo.getIsInsurance())) {
//保险说明
String insuranceInfo = "保险说明:" + appOrderDetailsVo.getInsuranceInfoMessage() + "。";
map.put("insuranceInfo", insuranceInfo);
}
//车辆交付地点
//根据存放地点查询
String address = "";
AppOrderPriceInfoVo priceInfo = appOrderDetailsVo.getPriceInfo();
if (StringUtils.isNotBlank(priceInfo.getPlannedPickUpLocationKey())) {
ScmWarehouseVo scmWarehouseVo = scmWarehouseFeign.fetchBySid(priceInfo.getPlannedPickUpLocationKey()).getData();
if (scmWarehouseVo != null) {
address = scmWarehouseVo.getWarehouseAttribute();
}
}
map.put("address", address);
//查询是否有公告型号
String publics = "公告型号:";
String publicModel = appOrderModelInfoVo.getPublicModel();
String publicModelSon = appOrderModelInfoVo.getPublicModelSon();
if (StringUtils.isNotBlank(publicModel)) {
publics = publics + publicModel;
map.put("publicModel", publics + "。");
if (StringUtils.isNotBlank(publicModelSon)) {
map.put("publicModel", publics + "、" + publicModelSon + "。");
}
}
map.put("contractNo", dto.getContractNo());
String url = "";
PrintConfirmVo printConfirmVo = null;
String urlAll = "";
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());
Future<String> future1 = pool.submit(() -> {
return genCarSaleContract(dto, map, appOrderDetailsVo);
});
Future<String> future1_2 = pool.submit(() -> {
return genCarSaleContract2(dto, map, appOrderDetailsVo);
});
Future<String> future8 = null;
List<File> filesList = new ArrayList<>();
if (future1 != null) {
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (future1_2 != null) {
if (StringUtils.isNotBlank(future1_2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1_2.get());
filesList.add(file);
}
}
//合并pdf文件
if (future8 != null) {
if (StringUtils.isNotBlank(future8.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future8.get());
filesList.add(file);
}
}
if (filesList.size() > 0) {
String typeName = appOrderDetailsVo.getPayType() + dto.getContractNo() + ".pdf";
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
urlAll = typeName;
}
if (StringUtils.isNotBlank(urlAll)) {
printConfirmVo = new PrintConfirmVo();
printConfirmVo.setName(MessageFormat.format("《{0}》", appOrderDetailsVo.getPayType() + dto.getContractNo()));
printConfirmVo.setDownloadUrl(docPdfComponent.getPrefixTemplateUrl() + urlAll);
list.add(printConfirmVo);
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
return rb.setMsg("生成文件失败");
}
return rb.success().setData(list);
}
public ResultBean<List<PrintConfirmVo>> printConfirm(PrintConfirmDto dto) {
ResultBean<List<PrintConfirmVo>> rb = ResultBean.fireFail();
List<PrintConfirmVo> list = new ArrayList<>();
@ -2983,4 +3351,6 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
return rb.success().setData(records);
}
}

17
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -1350,15 +1350,6 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
public ResultBean submitFinBillApplication(SubmitFinBillApplicationDto dto) {
ResultBean rb = ResultBean.fireFail();
String contractNo = dto.getContractNo();
List<FinBillApplicationDetailsVo> finBillApplicationDetailsVos = baseMapper.selectByContractNo(contractNo);
/*if (finBillApplicationDetailsVos != null) {
for (FinBillApplicationDetailsVo finBillApplicationDetailsVo : finBillApplicationDetailsVos) {
String nodeState = finBillApplicationDetailsVo.getNodeState();
if (!"待提交".equals(nodeState) && !"已办结".equals(nodeState) && !"终止".equals(nodeState) && !"发起申请".equals(nodeState)) {
return rb.setMsg("该合同已有开票/欠款开票申请正在审批中,不可提交");
}
}
}*/
//判断车辆是否发起过开票申请
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (FinBillVehicleDto finBillVehicle : finBillVehicles) {
@ -1403,6 +1394,14 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//判断是否担保贷款,若是,则isdbdk网关参数为true=============添加
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(contractNo).getData();
variables.put("isdbdk", "2".equals(busSalesOrder.getPayTypeKey()));
//判断是否是高低开,若是,则isAdj网关参数为true=============添加
BusSalesOrderPrice data = busSalesOrderFeign.selectByContractNo(contractNo).getData();
if (data != null) {
variables.put("isAdj", !data.getSingleFinalPrice().equals(finBillApplication.getOneBillMoney()));
}
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/LoanHomevisitPrepFeign.java

@ -89,7 +89,7 @@ public interface LoanHomevisitPrepFeign {
@ApiOperation("生成消贷合同")
@PostMapping("/saveLoanCon")
@ResponseBody
public ResultBean saveLoanCon(@RequestParam("sid") String sid, @RequestParam("conSetUpKey") String conSetUpKey);
public ResultBean<String> saveLoanCon(@RequestParam("sid") String sid, @RequestParam("conSetUpKey") String conSetUpKey);
@ApiOperation("确定贷款人推送家纺准备")
@PostMapping("/saveHomeVisit")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/LoanHomevisitPrepFeignFallback.java

@ -81,7 +81,7 @@ public class LoanHomevisitPrepFeignFallback implements LoanHomevisitPrepFeign {
}
@Override
public ResultBean saveLoanCon(String sid, String conSetUpKey) {
public ResultBean<String> saveLoanCon(String sid, String conSetUpKey) {
return null;
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepRest.java

@ -25,6 +25,7 @@
*********************************************************/
package com.yxt.anrui.riskcenter.biz.loanhomevisitprep;
import com.yxt.anrui.base.api.commoncontract.PrintConfirmVo;
import com.yxt.anrui.riskcenter.api.loanhomevisitprep.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -104,7 +105,7 @@ public class LoanHomevisitPrepRest implements LoanHomevisitPrepFeign {
}
@Override
public ResultBean saveLoanCon(String sid, String conSetUpKey) {
public ResultBean<String> saveLoanCon(String sid, String conSetUpKey) {
return loanHomevisitPrepService.saveLoanCon(sid, conSetUpKey);
}

37
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

@ -31,8 +31,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum;
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.api.commoncontract.PrintConfirmDto;
import com.yxt.anrui.base.api.commoncontract.PrintConfirmVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontract;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractDto;
@ -89,6 +95,8 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private LoanHomevisitInvestigateService loanHomevisitInvestigateService;
@Autowired
private CommonContractFeign commonContractFeign;
public PagerVo<LoanHomevisitPrepVo> listPageVo(PagerQuery<LoanHomevisitPrepQuery> pq) {
LoanHomevisitPrepQuery query = pq.getParams();
@ -235,8 +243,8 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
return rb.success().setData(contractSetKey);
}
public ResultBean saveLoanCon(String sid, String conSetUpKey) {
ResultBean rb = ResultBean.fireFail();
public ResultBean<String> saveLoanCon(String sid, String conSetUpKey) {
ResultBean<String> rb = ResultBean.fireFail();
LoanHomevisitPrepVo loanHomevisitPrepVo = baseMapper.selectDetails(sid);
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(loanHomevisitPrepVo.getSaleOrderSid(),loanHomevisitPrepVo.getBorrowerSid()).getData();
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(loanHomevisitPrepVo.getSaleOrderSid()).getData();
@ -286,6 +294,31 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
busSalesOrderVehicleFeign.updateXDCon(busSalesOrderVehicle.getSid(), loanContractSid);
}
}
//贷款人生成车辆买卖合同
PrintConfirmDto printConfirmDto = new PrintConfirmDto();
CommonContract commonContract = commonContractFeign.selectByNo(loanHomevisitPrepVo.getContractNo()).getData();
printConfirmDto.setSid(commonContract.getSid());
printConfirmDto.setBusSid(loanHomevisitPrepVo.getSaleOrderSid());
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(loanHomevisitPrepVo.getBorrowerSid()).getData();
printConfirmDto.setCustomerSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
printConfirmDto.setBorrowerSid(busSalesOrderBorrowerDetailsVo.getSid());
printConfirmDto.setContractNo(loanHomevisitPrepVo.getContractNo());
printConfirmDto.setCustomerName(loanHomevisitPrepVo.getBorrowerName());
printConfirmDto.setDiscountKey("0");
printConfirmDto.setInsuranceKey("0");
LoanHomevisitPrep loanHomevisitPrep = fetchBySid(sid);
printConfirmDto.setUserSid(loanHomevisitPrep.getCreateBySid());
//查询销售订单的信息
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderFeign.getSaleOrderDetails(loanHomevisitPrepVo.getSaleOrderSid());
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData();
//甲方
String createOrgName = appOrderDetailsVo.getSalesOrg();
printConfirmDto.setCreateOrgName(createOrgName);
List<PrintConfirmVo> printConfirmVos = commonContractFeign.xcmmContract(printConfirmDto).getData();
String xcmmContractUrl = printConfirmVos.get(0).getDownloadUrl();
return rb.success();
}

Loading…
Cancel
Save