Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
God 2 years ago
parent
commit
c8ea7f5f5c
  1. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderDetailsVo.java
  2. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordermodel/BusSalesOrderModelFeign.java
  3. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordermodel/BusSalesOrderModelFeignFallback.java
  4. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermodel/BusSalesOrderModelRest.java
  5. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermodel/BusSalesOrderModelService.java
  6. 5
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdanFlow/xiaoshoudingdanByCaiGou.vue
  7. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  8. 14
      anrui-riskcenter-ui/src/api/homevisitpreparation/homevisitpreparation.js
  9. 44
      anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue
  10. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateFeign.java
  11. 17
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuotationQuery.java
  12. 53
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuotationVo.java
  13. 20
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java
  14. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateRest.java
  15. 261
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java
  16. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/application-pro.yml
  17. 1820
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationFour.ftl
  18. 1069
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationOne.ftl
  19. 1356
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationThree.ftl
  20. 1160
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationTwo.ftl
  21. 16
      anrui-system-ui/src/api/pushmessage/pushmessage.js
  22. 13
      anrui-system-ui/src/router/index.js
  23. 68
      anrui-system-ui/src/views/pushmessage/pushmessage.vue

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderDetailsVo.java

@ -111,6 +111,7 @@ public class BusSalesOrderDetailsVo implements Vo {
private String isTop;
@ApiModelProperty("销售订单车辆类型:1现车、2订单、3排产")
private String type;
private String nowCarUnknownVinNum;
@ApiModelProperty(value = "主车车型信息")
private BusSalesOrderModelDetailsVo busSalesOrderModel = new BusSalesOrderModelDetailsVo();
// private AppOrderModelInfoVo modelInfoVo = new AppOrderModelInfoVo();

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordermodel/BusSalesOrderModelFeign.java

@ -30,8 +30,10 @@ import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
@ -60,5 +62,8 @@ public interface BusSalesOrderModelFeign {
@PutMapping("/saveOrUpdate")
ResultBean save(@Valid @RequestBody AppBusSalesOrderModelDto dto);
@ApiOperation("根据销售订单sid查询车型")
@PostMapping("/fetchByOrderSid")
ResultBean<BusSalesOrderModel> fetchByOrderSid(@RequestParam("salesOrderSid") String salesOrderSid);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordermodel/BusSalesOrderModelFeignFallback.java

@ -51,4 +51,9 @@ public class BusSalesOrderModelFeignFallback implements BusSalesOrderModelFeign
public ResultBean save(AppBusSalesOrderModelDto dto) {
return null;
}
@Override
public ResultBean<BusSalesOrderModel> fetchByOrderSid(String salesOrderSid) {
return null;
}
}

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermodel/BusSalesOrderModelRest.java

@ -25,6 +25,7 @@
*********************************************************/
package com.yxt.anrui.buscenter.biz.bussalesordermodel;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModelFeign;
import com.yxt.anrui.buscenter.api.bussalesordermodel.app.AppBusSalesOrderModelDto;
import com.yxt.common.core.result.ResultBean;
@ -58,4 +59,9 @@ public class BusSalesOrderModelRest implements BusSalesOrderModelFeign {
public ResultBean save(AppBusSalesOrderModelDto dto) {
return busSalesOrderModelService.saveApp(dto);
}
@Override
public ResultBean<BusSalesOrderModel> fetchByOrderSid(String salesOrderSid) {
return busSalesOrderModelService.fetchByOrderSid(salesOrderSid);
}
}

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermodel/BusSalesOrderModelService.java

@ -880,4 +880,10 @@ public class BusSalesOrderModelService extends MybatisBaseService<BusSalesOrderM
public List<BusSalesOrderModel> selectListByOrderSid(String saleOrderSid) {
return baseMapper.selectListByOrderSid(saleOrderSid);
}
public ResultBean<BusSalesOrderModel> fetchByOrderSid(String salesOrderSid) {
ResultBean<BusSalesOrderModel> rb = ResultBean.fireFail();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(salesOrderSid);
return rb.success().setData(busSalesOrderModel);
}
}

5
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xiaoshoudingdanFlow/xiaoshoudingdanByCaiGou.vue

@ -417,7 +417,8 @@ export default {
useOrgSid: '',
purchaseSystemName: '',
purchaseSystemSid: '',
finPlanState: false
finPlanState: false,
nowCarUnknownVinNum: ''
},
operation: '', //
dialogList: {
@ -553,7 +554,7 @@ export default {
this.operation = val
this.purchaseName = this.formobj.purchaseSystemName
this.purchaseSid = this.formobj.purchaseSystemSid
if (this.formobj.type === '3') {
if (this.formobj.type === '3' || (this.formobj.nowCarUnknownVinNum !== '' && this.formobj.nowCarUnknownVinNum !== '0')) {
this.purchaseVisible = true
} else {
this.currentLink = true

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

@ -391,7 +391,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//首次认款
List<FinSelectedReceivablesDetailedDto> finSelectedReceivablesDetailedDtos = dto.getFinSelectedReceivablesDetaileds();
BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedDtos.stream().map(FinSelectedReceivablesDetailedDto::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
if (subscriptionMoneyAll.compareTo(new BigDecimal(dto.getCollectionMoney())) != 0) {
if (subscriptionMoneyAll.compareTo(StringUtils.isNotBlank(dto.getCollectionMoney())?new BigDecimal(dto.getCollectionMoney()):BigDecimal.ZERO) != 0) {
return rb.setMsg("认款总额与收款金额不符");
}
List<FinCollectionConfirmationAppendixDto> paymentVoucherAppendixs = dto.getPaymentVoucherAppendixs();

14
anrui-riskcenter-ui/src/api/homevisitpreparation/homevisitpreparation.js

@ -16,5 +16,19 @@ export default {
method: 'get',
params: data
})
},
initConSetUp: function(data) {
return request({
url: '/riskcenter/v1/loanhomevisitprep/initConSetUp/' + data,
method: 'get'
})
},
saveLoanCon: function(data) {
return request({
url: '/riskcenter/v1/loanhomevisitprep/saveLoanCon',
method: 'post',
params: data
})
}
}

44
anrui-riskcenter-ui/src/views/homevisitpreparation/homevisittobeprepared.vue

@ -126,6 +126,17 @@
<thehomevisitisready v-show="viewState == 2" ref="divSelect" @doback="resetState"/>
<!-- 查看销售订单 -->
<saleOrder v-show="viewState == 3" ref="divSale" @doback="resetState"/>
<!-- 生成合同 -->
<el-dialog title="生成合同设置" :visible.sync="dialogVisible" width="50%">
<el-radio-group style="font-size: 1px" v-model="contract">
<el-radio label="001">一车一合同</el-radio>
<el-radio label="002">一贷款人一合同</el-radio>
</el-radio-group>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleConfirm">确定</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</span>
</el-dialog>
</div>
</template>
@ -150,6 +161,7 @@ export default {
return {
viewState: 1,
btndisabled: false,
dialogVisible: false,
btnList: [
{
type: 'primary',
@ -200,6 +212,7 @@ export default {
size: 10,
total: 0
},
contract: '',
rules: {}
}
},
@ -276,10 +289,37 @@ export default {
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
return
}
},
toContract() {},
toContract() {
if (this.sids.length === 1) {
req.initConSetUp(this.sids[0]).then((res) => {
if (res.data === '003') {
this.dialogVisible = true
this.contract = ''
} else {
this.saveLoanCon(res.data)
}
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
handleConfirm() {
if (this.contract !== '') {
this.dialogVisible = false
this.saveLoanCon(this.contract)
} else {
this.$message({ showClose: true, type: 'error', message: '请选择相应的生成合同设置方式' })
}
},
saveLoanCon(val) {
req.saveLoanCon({ sid: this.sids[0], conSetUpKey: val }).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '操作成功'})
}
})
},
handleLook(row) {
this.viewState = 3
this.$refs['divSale'].showInfo(row.saleOrderSid)

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateFeign.java

@ -80,5 +80,14 @@ public interface LoanTemplateFeign {
@GetMapping(value = "/getTemplateApply/{sid}")
ResultBean<TemplateApplyVo> getTemplateApply(@PathVariable("sid") String sid);
@ApiOperation("预估报价单4种方式展示")
@PostMapping("/showTemplateQuotation")
@ResponseBody
ResultBean<LoanTemplateQuotationVo> showTemplateQuotation(@RequestBody LoanTemplateQuotationQuery query);
@ApiOperation("预估报价单4种方式打印")
@PostMapping("/templateQuotationCreatePdf")
ResultBean<String> templateQuotationCreatePdf(@RequestBody LoanTemplateQuotationQuery query);
}

17
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuotationQuery.java

@ -0,0 +1,17 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/8/24 8:56
*/
@Data
public class LoanTemplateQuotationQuery {
private String salesOrderSid;
@ApiModelProperty("方案模式key")
private String revalencySchemeKey;
}

53
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateQuotationVo.java

@ -0,0 +1,53 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Administrator
* @description
* @date 2023/8/24 8:56
*/
@Data
public class LoanTemplateQuotationVo {
@ApiModelProperty("车型")
private String vehModel;
@ApiModelProperty("融资项目")
private String templateName;
@ApiModelProperty("预估应收合计")
private String receivableTotal;
@ApiModelProperty("融资首付")
private String downPayAmounts;
@ApiModelProperty("贷款保证金")
private String bondAmounts;
@ApiModelProperty("服务费")
private String serviceAmount;
@ApiModelProperty("代收首年保险费")
private String proxyPremium;
@ApiModelProperty("落户保证金")
private String depositSettle;
@ApiModelProperty("补车价")
private String vehOtherPrice;
@ApiModelProperty("代收购置税")
private String proxyPurchasetax;
@ApiModelProperty("保险保证金")
private String depositPremium;
@ApiModelProperty("其他费用")
private String otherAmount;
@ApiModelProperty("代收意外险")
private String proxyAccidentPremium;
@ApiModelProperty("总期数")
private String loanPeriod;
@ApiModelProperty("前X期数")
private String times;
@ApiModelProperty("前X期数月还")
private String previousRepay;
@ApiModelProperty("剩余期数月还")
private String monthlyRepay;
@ApiModelProperty("名义(留购)价款")
private String nominalPrice;
@ApiModelProperty("预计首期还款日")
private String returnTime;
}

20
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java

@ -941,10 +941,15 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid());
loanSolutionsDetailService.insert(loanSolutionsDetail);
} else {
if(StringUtils.isBlank(dto.getDiscountCar())){
if(StringUtils.isBlank(dto.getFactoryDiscount())){
return rb.setMsg("厂家贴息不能为空");
}
if (StringUtils.isBlank(dto.getDiscountCar())) {
return rb.setMsg("贴息抵车款不能为空");
}
if(new BigDecimal(dto.getDiscountCar()).compareTo(new BigDecimal(dto.getFactoryDiscount()))>0){
return rb.setMsg("贴息抵车款金额不允许超过厂家贴息的金额");
}
if (loanSolutions != null) {
baseMapper.deleteByOrderSid(dto.getBusSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
@ -1273,7 +1278,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.setMsg("请选择其他融");
}
String otherPolicyYearRatio = query.getOtherPolicyYearRatio();
if(otherPolicyYearRatio.contains("%")){
if (otherPolicyYearRatio.contains("%")) {
otherPolicyYearRatio = otherPolicyYearRatio.replaceAll("%", "");
}
String otherPolicyAmount = query.getOtherPolicyAmount();
@ -2174,6 +2179,15 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return baseMapper.selectByApplySid(sid);
}
public LoanSolutions selectBySaleOrderSid(String saleOrderSid) {
LoanSolutions loanSolutions = baseMapper.selectBySaleOrderSid(saleOrderSid);
return loanSolutions;
}
/* @Autowired
private LoanSolutionsTopService loanSolutionsTopService;
@Autowired

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateRest.java

@ -96,4 +96,14 @@ public class LoanTemplateRest implements LoanTemplateFeign {
public ResultBean<TemplateApplyVo> getTemplateApply(String sid) {
return loanTemplateService.getTemplateApply(sid);
}
@Override
public ResultBean<LoanTemplateQuotationVo> showTemplateQuotation(LoanTemplateQuotationQuery query) {
return loanTemplateService.showTemplateQuotation(query);
}
@Override
public ResultBean<String> templateQuotationCreatePdf(LoanTemplateQuotationQuery query) {
return loanTemplateService.templateQuotationCreatePdf(query);
}
}

261
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java

@ -10,6 +10,10 @@ import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelDetailsVo;
import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelFeign;
import com.yxt.anrui.base.api.basevehinstallmodel.BaseVehinstallmodelDetailsVo;
import com.yxt.anrui.base.api.basevehinstallmodel.BaseVehinstallmodelFeign;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModelFeign;
import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusDataListPdfVo;
import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverPdfVo;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
@ -48,22 +52,29 @@ import com.yxt.anrui.riskcenter.biz.loansolutionsdetail.LoanSolutionsDetailServi
import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService;
import com.yxt.anrui.riskcenter.biz.loantemplateinstall.LoanTemplateInstallService;
import com.yxt.anrui.riskcenter.biz.loantemplatetrailer.LoanTemplateTrailerService;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
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.base.utils.WordConvertUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import io.swagger.annotations.ApiModelProperty;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@ -105,7 +116,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
private LoanSolutionsOtherpolicyService loanSolutionsOtherpolicyService;
@Autowired
private LoanSolutionsDetailService loanSolutionsDetailService;
@Autowired
private BusSalesOrderModelFeign busSalesOrderModelFeign;
@Autowired
private DocPdfComponent docPdfComponent;
public PagerVo<LoanTemplateVo> listPageVo(PagerQuery<LoanTemplateQuery> pq) {
LoanTemplateQuery query = pq.getParams();
@ -740,4 +754,249 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
}
return rb.success();
}
/**
* 预估报价单展示方式
*
* @param query
* @return
*/
public ResultBean<LoanTemplateQuotationVo> showTemplateQuotation(LoanTemplateQuotationQuery query) {
ResultBean<LoanTemplateQuotationVo> rb = ResultBean.fireFail();
LoanTemplateQuotationVo vo = new LoanTemplateQuotationVo();
String salesOrderSid = query.getSalesOrderSid();
String typeKey = query.getRevalencySchemeKey();
BusSalesOrderModel model = busSalesOrderModelFeign.fetchByOrderSid(salesOrderSid).getData();
//-----------车型-----------
if (null != model) {
if (StringUtils.isNotBlank(model.getModelName())) {
vo.setVehModel(model.getModelName());
}
}
LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(salesOrderSid);
StringBuffer sb = new StringBuffer();
if (null != loanSolutions) {
//-----------融资项目-----------
if (null != loanSolutions.getMainVehicleAmount()) {
sb.append("主车:" + loanSolutions.getMainVehicleAmount().toString() + "元").append(",");
}
if (null != loanSolutions.getAccessoriesAmount()) {
sb.append("融资票据:" + loanSolutions.getAccessoriesAmount().toString() + "元").append(",");
}
if (null != loanSolutions.getTrailerAmount()) {
sb.append("挂车:" + loanSolutions.getTrailerAmount().toString() + "元").append(",");
}
if (null != loanSolutions.getPremium()) {
sb.append("保险:" + loanSolutions.getPremium().toString() + "元").append(",");
}
if (null != loanSolutions.getPurchaseTax()) {
sb.append("购置税:" + loanSolutions.getPurchaseTax().toString() + "元").append(",");
}
if (sb.length() > 0) {
sb.delete(sb.length() - 1, sb.length());
vo.setTemplateName("融资项目总额:" + loanSolutions.getLoanTotal().toString() + "元" + "(" + sb.toString() + ")");
}
//-----------期数-----------
if (StringUtils.isNotBlank(loanSolutions.getLoanPeriod())) {
vo.setLoanPeriod(loanSolutions.getLoanPeriod());
}
LoanSolutionsOtherpolicy otherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (otherpolicy != null) {
//----------前X期月还/剩余月还-------------
if (StringUtils.isNotBlank(otherpolicy.getPeriod())) {
String period = otherpolicy.getPeriod();
String[] split = period.split("/");
String beforePeriod = split[0];
String afterPeriod = split[1];
if (beforePeriod.equals("0") && !afterPeriod.equals("0")) {
vo.setTimes(afterPeriod);
vo.setPreviousRepay("¥" + otherpolicy.getMonthlyRepay());
vo.setMonthlyRepay("-");
} else if (!beforePeriod.equals("0") && afterPeriod.equals("0")) {
String monthlyRepay = otherpolicy.getMonthlyRepay();
vo.setTimes(beforePeriod);
String[] splitMonthlyPepay = monthlyRepay.split("/");
String beforeMoney = splitMonthlyPepay[0];
vo.setPreviousRepay("¥" + beforeMoney);
vo.setMonthlyRepay("-");
} else {
String monthlyRepay = otherpolicy.getMonthlyRepay();
vo.setTimes(beforePeriod);
String[] splitMonthlyPepay = monthlyRepay.split("/");
String beforeMoney = splitMonthlyPepay[0];
String afterMoney = splitMonthlyPepay[1];
vo.setPreviousRepay("¥" + beforeMoney);
vo.setMonthlyRepay("¥" + afterMoney);
}
}
//----------预计首期还款日-------------
if (StringUtils.isNotBlank(otherpolicy.getReturnTime())) {
vo.setReturnTime(otherpolicy.getReturnTime());
}
}
LoanSolutionsDetail solutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid());
if (null != solutionsDetail) {
//-----------名义价款-----------
if (null != solutionsDetail.getNominalPrice()) {
vo.setNominalPrice("¥" + solutionsDetail.getNominalPrice().toString());
}
//-----------方案234通用------------------
if (query.getRevalencySchemeKey().equals("002") || query.getRevalencySchemeKey().equals("003") || query.getRevalencySchemeKey().equals("004")) {
//-----------预估应收合计------------------
if (null != solutionsDetail.getReceivableTotal()) {
vo.setReceivableTotal("¥" + solutionsDetail.getReceivableTotal().toString());
}
}
//-----------方案34通用------------------
if (query.getRevalencySchemeKey().equals("003") || query.getRevalencySchemeKey().equals("004")) {
//-----------贷款保证金------------------
if (null != solutionsDetail.getBondAmounts()) {
vo.setBondAmounts("¥" + solutionsDetail.getBondAmounts().toString());
}
//-----------落户保证金------------------
if (null != solutionsDetail.getDepositSettle()) {
vo.setDepositSettle("¥" + solutionsDetail.getDepositSettle().toString());
}
//-----------保险保证金------------------
if (null != solutionsDetail.getDepositPremium()) {
vo.setDepositPremium("¥" + solutionsDetail.getDepositPremium().toString());
}
}
//-----------方案4通用------------------
if (query.getRevalencySchemeKey().equals("004")) {
//-----------融资首付------------------
if (null != solutionsDetail.getDownPayAmounts()) {
vo.setDownPayAmounts("¥" + solutionsDetail.getDownPayAmounts().toString());
}
//-----------代收首年保险费------------------
if (null != solutionsDetail.getProxyPremium()) {
vo.setProxyPremium("¥" + solutionsDetail.getProxyPremium().toString());
}
//-----------代收购置税------------------
if (null != solutionsDetail.getProxyPurchasetax()) {
vo.setProxyPurchasetax("¥" + solutionsDetail.getProxyPurchasetax().toString());
}
//-----------代收意外险------------------
if (null != solutionsDetail.getProxyAccidentPremium()) {
vo.setProxyAccidentPremium("¥" + solutionsDetail.getProxyAccidentPremium().toString());
}
//-----------服务费------------------
if (null != solutionsDetail.getServiceAmount()) {
vo.setServiceAmount("¥" + solutionsDetail.getServiceAmount().toString());
}
//-----------补车价------------------
if (null != solutionsDetail.getVehOtherPrice()) {
vo.setVehOtherPrice("¥" + solutionsDetail.getVehOtherPrice().toString());
}
//-----------其他费用------------------
if (null != solutionsDetail.getOtherAmount()) {
vo.setOtherAmount("¥" + solutionsDetail.getOtherAmount().toString());
}
}
}
}
return rb.success().setData(vo);
}
/**
* 预估报价单打印
*
* @param query
* @return
*/
public ResultBean<String> templateQuotationCreatePdf(LoanTemplateQuotationQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
String template = "/template/";
String s = templateQuotation(query);
String filePath = s.substring(docPdfComponent.getUploadTemplateUrl().length());
return rb.success().setData(template + filePath);
}
/**
* 方案打印
*
* @param query
* @return
*/
public String templateQuotation(LoanTemplateQuotationQuery query) {
LoanTemplateQuotationVo pdfVo = showTemplateQuotation(query).getData();
String path = "";
if (null != pdfVo) {
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("vehModel", pdfVo.getVehModel());
dataMap.put("templateName", pdfVo.getTemplateName());
dataMap.put("loanPeriod", pdfVo.getLoanPeriod());
dataMap.put("times", pdfVo.getTimes());
dataMap.put("previousRepay", pdfVo.getPreviousRepay());
dataMap.put("monthlyRepay", pdfVo.getMonthlyRepay());
dataMap.put("returnTime", pdfVo.getReturnTime());
dataMap.put("nominalPrice", pdfVo.getNominalPrice());
//-----------方案234通用------------------
if (query.getRevalencySchemeKey().equals("002") || query.getRevalencySchemeKey().equals("003") || query.getRevalencySchemeKey().equals("004")) {
//-----------预估应收合计------------------
dataMap.put("receivableTotal", pdfVo.getReceivableTotal());
}
//-----------方案34通用------------------
if (query.getRevalencySchemeKey().equals("003") || query.getRevalencySchemeKey().equals("004")) {
//-----------贷款保证金------------------
dataMap.put("bondAmounts", pdfVo.getBondAmounts());
//-----------落户保证金------------------
dataMap.put("depositSettle", pdfVo.getDepositSettle());
//-----------保险保证金------------------
dataMap.put("depositPremium", pdfVo.getDepositPremium());
}
//-----------方案4通用------------------
if (query.getRevalencySchemeKey().equals("004")) {
//-----------融资首付------------------
dataMap.put("downPayAmounts", pdfVo.getDownPayAmounts());
//-----------代收首年保险费------------------
dataMap.put("proxyPremium", pdfVo.getProxyPremium());
//-----------代收购置税------------------
dataMap.put("proxyPurchasetax", pdfVo.getProxyPurchasetax());
//-----------代收意外险------------------
dataMap.put("proxyAccidentPremium", pdfVo.getProxyPremium());
//-----------服务费------------------
dataMap.put("serviceAmount", pdfVo.getServiceAmount());
//-----------补车价------------------
dataMap.put("vehOtherPrice", pdfVo.getVehOtherPrice());
//-----------其他费用------------------
dataMap.put("otherAmount", pdfVo.getOtherAmount());
}
String targetPath = docPdfComponent.getUploadTemplateUrl();
try {
String resourceAsStreamPath = "";
if (query.getRevalencySchemeKey().equals("001")) {
resourceAsStreamPath = "ftl/templateQuotationOne.ftl";
} else if (query.getRevalencySchemeKey().equals("002")) {
resourceAsStreamPath = "ftl/templateQuotationTwo.ftl";
} else if (query.getRevalencySchemeKey().equals("003")) {
resourceAsStreamPath = "ftl/templateQuotationThree.ftl";
} else if (query.getRevalencySchemeKey().equals("004")) {
resourceAsStreamPath = "ftl/templateQuotationFour.ftl";
}
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(resourceAsStreamPath);
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "templateQuotation" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
//生成出门证文件名
String pdfName = "预估报价单" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
path = targetPath + pdfName;
} catch (NoClassDefFoundError e) {
e.printStackTrace();
path = targetPath;
}
return path;
} else {
return path;
}
}
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/application-pro.yml

@ -25,4 +25,7 @@ image:
path: D:\anrui\upload\
url:
prefix: http://120.46.172.184/api/upload/
templateUrl:
uploadUrl: D:\anrui\upload\template\
prefixUrl: http://120.46.172.184/api/upload/template/

1820
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationFour.ftl

File diff suppressed because it is too large

1069
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationOne.ftl

File diff suppressed because it is too large

1356
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationThree.ftl

File diff suppressed because it is too large

1160
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/templateQuotationTwo.ftl

File diff suppressed because it is too large

16
anrui-system-ui/src/api/pushmessage/pushmessage.js

@ -0,0 +1,16 @@
import request from '@/utils/request'
export function push(data) {
return request({
url: '/message/v1/message/pushTest',
method: 'post',
params: data
})
}
// 获取集团所有在职人员
export function selectStaffListss() {
return request({
url: '/portal/v1/sysstaffinfo/selectStaffListss',
method: 'get'
})
}

13
anrui-system-ui/src/router/index.js

@ -189,6 +189,19 @@ export const constantRoutes = [
}
}]
},
{
path: '/pushmessage',
component: Layout,
redirect: '/pushmessage',
children: [{
path: '/pushmessage',
component: () => import('@/views/pushmessage/pushmessage.vue'),
name: 'PushMessage',
meta: {
title: '消息推送'
}
}]
},
{
path: '/logManage',
component: Layout,

68
anrui-system-ui/src/views/pushmessage/pushmessage.vue

@ -0,0 +1,68 @@
<template>
<div class="app-container">
<div class="listconadd">
<el-form ref="formobj" :model="formobj" class="formadd">
<div class="title">
消息推送
<el-button type="primary" size="small" @click="handlePush">推送</el-button>
</div>
<el-row>
<el-col :span="4" class="tleftb">推送人</el-col>
<el-col :span="20">
<el-form-item>
<el-select v-model="value" placeholder="请选择" filterable>
<el-option
v-for="item in options"
:key="item.userSid"
:label="item.staffName"
:value="item.userSid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import { push, selectStaffListss } from '@/api/pushmessage/pushmessage'
export default {
name: 'PushMessage',
data() {
return {
value: '',
options: [],
}
},
created() {
selectStaffListss().then((res) => {
if (res.success) {
this.options = res.data
}
})
},
methods: {
handlePush() {
push({ userSid: this.value }).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '推送成功' })
}
})
}
}
}
</script>
<style scoped>
.title {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>
Loading…
Cancel
Save