Browse Source

销售订单金融方案及移动端金融定制审批

master
dimengzhe 2 years ago
parent
commit
22f7407c4d
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleState.java
  2. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java
  3. 9
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/SolutionsDetailsssVo.java
  4. 26
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  5. 18
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  6. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java
  7. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionsDetailsVo.java
  8. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionssDto.java
  9. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionssVo.java
  10. 11
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java
  11. 138
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java
  12. 84
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java
  13. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java
  14. 52
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateInstallVo.java
  15. 67
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateTrailerVo.java
  16. 50
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java
  17. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/flowable/TemplatTaskQuery.java
  18. 39
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/flowable/TemplateApplyDto.java
  19. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/flowable/TemplateApplyQuery.java
  20. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/solutions/AppSolutionssDto.java
  21. 54
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loantemplate/TemplateRest.java
  22. 115
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loantemplate/TemplateService.java

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleState.java

@ -38,6 +38,8 @@ public class BaseVehicleState extends BaseEntity {
private String contractState;
private String saleTypeKey;
private String finSourceKey;
@ApiModelProperty("销售订单sid")
private String saleOrderSid;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateDto.java

@ -25,4 +25,6 @@ public class BaseVehicleStateDto implements Dto {
private String saleTypeKey;
@ApiModelProperty("款项来源:1自有资金、2三方金融、3担保、4非担保")
private String finSourceKey;
@ApiModelProperty("销售订单sid")
private String saleOrderSid;
}

9
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/SolutionsDetailsssVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.buscenter.api.bussalesorder;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -10,8 +11,8 @@ import lombok.Data;
*/
@Data
public class SolutionsDetailsssVo {
@JsonProperty("isShowMore")
private boolean isShowMore;
@ApiModelProperty("销售订单sid")
private String salesOrderSid;
@ -74,11 +75,13 @@ public class SolutionsDetailsssVo {
private boolean vehDamageFloatCb;
@ApiModelProperty("是否勾选其它融")
private boolean otherPolicyState;
private String discountCar;
//其他融
@ApiModelProperty("其它融名称")
private String otherPolicyName;
private String otherPolicySid;
@ApiModelProperty("其它融金额")
private String otherPolicyAmount;
@ApiModelProperty("其它融期数")
@ -132,6 +135,8 @@ public class SolutionsDetailsssVo {
private String dealWay;
@ApiModelProperty("办理方式选择key")
private String dealWayKey;
@ApiModelProperty("代收合计")
private String proxyTotal;
@ApiModelProperty("代收首年保险费")
private String proxyPremium;
@ApiModelProperty("代收购置费")

26
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -4855,6 +4855,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
baseVehicleStateDto.setVinSid(v.getLinkSid());
baseVehicleStateDto.setVinNo(v.getLinkNo());
}
baseVehicleStateDto.setSaleOrderSid(finalBusSalesOrderOne.getSid());
baseVehicleStateDto.setSaleTypeKey(finalBusSalesOrderOne.getPayTypeKey());
baseVehicleStateDto.setFinSourceKey(finalBusSalesOrderOne.getFinancePlan());
baseVehicleStateDto.setBusSid(v.getSid());
@ -5220,7 +5221,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
saveContract(orderContractQuery);
}
busSalesOrder = fetchBySid(bv.getBusinessSid());
//为三方金融和担保贷款
/* //为三方金融和担保贷款
if ("2".equals(busSalesOrder.getFinancePlan()) || "2".equals(busSalesOrder.getPayTypeKey())) {
//根据销售订单sid查询金融方案
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailsss(bv.getBusinessSid());
@ -5245,6 +5246,26 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
} else {
//推送车款
createCarFin(vo, busSalesOrder);
}*/
if ("2".equals(busSalesOrder.getPayTypeKey())) {
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailsss(bv.getBusinessSid());
SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData();
if (solutionsDetailsVo != null) {
createFinTwo(vo, busSalesOrder, solutionsDetailsVo);
}
} else {
if ("2".equals(busSalesOrder.getFinancePlan())) {
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailsss(bv.getBusinessSid());
SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData();
if (solutionsDetailsVo != null) {
//外部金融
createFin(vo, busSalesOrder, solutionsDetailsVo);
}
} else {
//推送车款
createCarFin(vo, busSalesOrder);
}
}
//==============================修改车辆的持久状态组装数据
try {
@ -5265,6 +5286,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
baseVehicleStateDto.setVinSid(v.getLinkSid());
baseVehicleStateDto.setVinNo(v.getLinkNo());
}
baseVehicleStateDto.setSaleOrderSid(v.getSalesOrderSid());
baseVehicleStateDto.setBusSid(v.getSid());
dtoList.add(baseVehicleStateDto);
});
@ -5330,7 +5352,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
String contractSid = baseMapper.selectBySid(busSalesOrder.getSid());
//单台成交价与单台订金相等
if (new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0) {//推送车款
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).subtract(new BigDecimal(solutionsDetailsVo.getFactoryDiscount())).add(new BigDecimal(solutionsDetailsVo.getServiceAmount())).toString();
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).subtract(new BigDecimal(solutionsDetailsVo.getDiscountCar())).add(new BigDecimal(solutionsDetailsVo.getServiceAmount())).toString();
List<VinListsVo> vinList = appOrderModelInfoVo.getVinListsVos();
for (int i = 0; i < vinList.size(); i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();

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

@ -1928,7 +1928,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailss(commonContract.getBusSid());
SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData();
if (solutionsDetailsVo != null) {
if (StringUtils.isNotBlank(solutionsDetailsVo.getTypeKey())) {
/* if (StringUtils.isNotBlank(solutionsDetailsVo.getTypeKey())) {
if ("02".equals(solutionsDetailsVo.getTypeKey())) {
//外部金融:成交价 = 订金+车款+厂家贴息-服务费
leftAll = leftAll.add(singleFinalPrice);
@ -1951,6 +1951,22 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getRealTotal()));
}
rightAll = rightAll.add(bigDecimalVinAll);
}*/
if ("2".equals(vo.getPayTypeKey())) {
if (StringUtils.isNotBlank(solutionsDetailsVo.getRealTotal())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getRealTotal()));
}
rightAll = rightAll.add(bigDecimalVinAll);
} else {
//外部金融:成交价 = 订金+车款+厂家贴息-服务费
leftAll = leftAll.add(singleFinalPrice);
if (StringUtils.isNotBlank(solutionsDetailsVo.getDiscountCar())) {
leftAll = leftAll.subtract(new BigDecimal(solutionsDetailsVo.getDiscountCar()));
}
if (StringUtils.isNotBlank(solutionsDetailsVo.getServiceAmount())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getServiceAmount()));
}
rightAll = rightAll.add(bigDecimalVinAll);
}
} else {
// 成交价 = 车款+订金

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansolutions;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -14,7 +15,8 @@ import javax.validation.constraints.NotBlank;
@Data
public class SolutionDetailsDto implements Dto {
private static final long serialVersionUID = 3094344495849727373L;
@JsonProperty("isShowMore")
private boolean isShowMore;
/**************************金融方案主表****************************/
@ApiModelProperty("关联sid")
private String busSid;

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionsDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansolutions.app;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -14,7 +15,9 @@ import java.math.BigDecimal;
@Data
public class SolutionsDetailsVo implements Vo {
private static final long serialVersionUID = 2678358838559733044L;
@ApiModelProperty("是否展示更多")
@JsonProperty("isShowMore")
private boolean isShowMore;
@ApiModelProperty("是否是三方金融")
private boolean finPlanState;
@ -80,10 +83,13 @@ public class SolutionsDetailsVo implements Vo {
@ApiModelProperty("是否勾选其它融")
private boolean otherPolicyState;
private String discountCar;
//其他融
@ApiModelProperty("其它融名称")
private String otherPolicyName;
private String otherPolicySid;
@ApiModelProperty("其它融金额")
private String otherPolicyAmount;
@ApiModelProperty("其它融期数")
@ -137,6 +143,8 @@ public class SolutionsDetailsVo implements Vo {
private String dealWay;
@ApiModelProperty("办理方式选择key")
private String dealWayKey;
@ApiModelProperty("代收合计")
private String proxyTotal;
@ApiModelProperty("代收首年保险费")
private String proxyPremium;
@ApiModelProperty("代收购置费")
@ -168,5 +176,4 @@ public class SolutionsDetailsVo implements Vo {
private String downPayAmountsRatio;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionssDto.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansolutions.app;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -14,7 +15,8 @@ import javax.validation.constraints.NotBlank;
@Data
public class SolutionssDto implements Dto {
private static final long serialVersionUID = -4329637976311165379L;
@JsonProperty("isShowMore")
private boolean isShowMore;
@ApiModelProperty("关联sid")
private String busSid;
@ApiModelProperty("是否打包:1是0否")

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/app/SolutionssVo.java

@ -76,7 +76,7 @@ public class SolutionssVo implements Vo {
@ApiModelProperty("是否勾选其它融")
private boolean otherPolicyState;
/**************************其他融*********************************/
private boolean otherPolicyIsMain;
@ApiModelProperty("其它融名称")
private String otherPolicyName;
@ApiModelProperty("其他融sid")
@ -165,5 +165,4 @@ public class SolutionssVo implements Vo {
@ApiModelProperty("拼接的List")
private List<SolutionListVo> financeForms = new ArrayList<>();
}

11
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java

@ -1,5 +1,7 @@
package com.yxt.anrui.riskcenter.api.loantemplate;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionListVo;
import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstallVo;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerVo;
import com.yxt.common.core.vo.Vo;
@ -18,7 +20,11 @@ import java.util.List;
@Data
public class TemplateApplyVo implements Vo {
private static final long serialVersionUID = 6376454518435397557L;
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "taskId")
private String taskId;
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ -54,9 +60,6 @@ public class TemplateApplyVo implements Vo {
private LoanTemplateInstallVo loanTemplateInstall;
@ApiModelProperty("挂车信息")
private LoanTemplateTrailerVo loanTemplateTrailer;
@ApiModelProperty("消贷金融方案")
private LoanTemplateSolutionsVo loanTemplateSolutions;
private List<TemplateSolutionVo> financeForms = new ArrayList<>();
private List<SolutionListVo> financeForms = new ArrayList<>();
}

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

@ -686,6 +686,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
@Transactional(rollbackFor = Exception.class)
public ResultBean saveDtoss(SolutionDetailsDto dto) {
ResultBean rb = ResultBean.fireFail();
//查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getBusSid());
if(dto.isShowMore()){
String mainVehicleAmount = dto.getMainVehicleAmount();
if (StringUtils.isBlank(mainVehicleAmount)) {
return rb.setMsg("主车发票价不能为空");
@ -753,8 +756,6 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
if (StringUtils.isBlank(loanPeriod)) {
return rb.setMsg("主方案期数不能为空");
}
//查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getBusSid());
if (loanSolutions != null) {
baseMapper.deleteByOrderSid(dto.getBusSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
@ -929,6 +930,36 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
loanSolutionsDetail.setNominalPrice(StringUtils.isNotBlank(nominalPrice) ? new BigDecimal(nominalPrice) : BigDecimal.ZERO);
loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid());
loanSolutionsDetailService.insert(loanSolutionsDetail);
}else{
if (loanSolutions != null) {
baseMapper.deleteByOrderSid(dto.getBusSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid());
}
loanSolutions = new LoanSolutions();
//产品政策名称
String policyName = dto.getPolicyName();
if (StringUtils.isNotBlank(policyName)) {
loanSolutions.setPolicyName(policyName);
}
if (StringUtils.isBlank(dto.getFactoryDiscount())) {
loanSolutions.setFactoryDiscount(new BigDecimal(BigInteger.ZERO));
} else {
loanSolutions.setFactoryDiscount(new BigDecimal(dto.getFactoryDiscount()));
}
loanSolutions.setDiscountCar(StringUtils.isNotBlank(dto.getDiscountCar())?new BigDecimal(dto.getDiscountCar()):BigDecimal.ZERO);
loanSolutions.setFactoryDiscountUse(dto.getFactoryDiscountUse());
LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail();
if (StringUtils.isNotBlank(dto.getServiceAmount())) {
loanSolutionsDetail.setServiceAmount(new BigDecimal(dto.getServiceAmount()));
} else {
loanSolutionsDetail.setServiceAmount(BigDecimal.ZERO);
}
loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid());
loanSolutions.setSalesOrderSid(dto.getBusSid());
loanSolutionsDetailService.insert(loanSolutionsDetail);
baseMapper.insert(loanSolutions);
}
return rb.success();
}
@ -940,6 +971,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb;
}
BeanUtil.copyProperties(loanSolutions, solutionsDetailsVo);
if (loanSolutions.getTrailerAmount() != null) {
solutionsDetailsVo.setGcPrice(loanSolutions.getTrailerAmount().toString());
}
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (loanSolutionsOtherpolicy != null) {
BeanUtil.copyProperties(loanSolutionsOtherpolicy, solutionsDetailsVo);
@ -948,19 +982,21 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
if (loanSolutionsDetail != null) {
BeanUtil.copyProperties(loanSolutionsDetail, solutionsDetailsVo);
}
//根据销售订单sid查询销售订单的信息
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderFeign.getSaleOrderDetails(loanSolutions.getSalesOrderSid());
//查询销售订单的状态
ResultBean<BusSalesOrdersVo> resultBean = busSalesOrderFeign.getSalesOrderOne(businessSid);
if (resultBean.getData() != null) {
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData();
//单车主车、挂车、上装成交价
AppOrderPriceInfoVo appOrderPriceInfoVo = appOrderDetailsVo.getPriceInfo();
if (appOrderPriceInfoVo != null) {
solutionsDetailsVo.setFinalPrice(appOrderPriceInfoVo.getTransactionPrice());
solutionsDetailsVo.setGcPrice(appOrderPriceInfoVo.getGcPrice());
solutionsDetailsVo.setSzPrice(appOrderPriceInfoVo.getSzPrice());
BusSalesOrdersVo busSalesOrdersVo = resultBean.getData();
solutionsDetailsVo.setSzPrice(busSalesOrdersVo.getSzPrice());
solutionsDetailsVo.setFinalPrice(busSalesOrdersVo.getFinalPrice());
if (busSalesOrdersVo.getBusSalesOrder() != null) {
BusSalesOrder busSalesOrder = busSalesOrdersVo.getBusSalesOrder();
//全款且为三方金融
if ("1".equals(busSalesOrder.getPayTypeKey()) && "2".equals(busSalesOrder.getFinancePlan())) {
solutionsDetailsVo.setShowMore(false);
} else if ("2".equals(busSalesOrder.getPayTypeKey())) {//贷款
solutionsDetailsVo.setShowMore(true);
}
}
}
return rb.success().setData(solutionsDetailsVo);
}
@ -973,6 +1009,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb;
}
BeanUtil.copyProperties(loanSolutions, solutionsDetailsVo);
if (loanSolutions.getTrailerAmount() != null) {
solutionsDetailsVo.setGcPrice(loanSolutions.getTrailerAmount().toString());
}
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (loanSolutionsOtherpolicy != null) {
BeanUtil.copyProperties(loanSolutionsOtherpolicy, solutionsDetailsVo);
@ -981,6 +1020,22 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
if (loanSolutionsDetail != null) {
BeanUtil.copyProperties(loanSolutionsDetail, solutionsDetailsVo);
}
//查询销售订单的状态
ResultBean<BusSalesOrdersVo> resultBean = busSalesOrderFeign.getSalesOrderOne(businessSid);
if (resultBean.getData() != null) {
BusSalesOrdersVo busSalesOrdersVo = resultBean.getData();
solutionsDetailsVo.setSzPrice(busSalesOrdersVo.getSzPrice());
solutionsDetailsVo.setFinalPrice(busSalesOrdersVo.getFinalPrice());
if (busSalesOrdersVo.getBusSalesOrder() != null) {
BusSalesOrder busSalesOrder = busSalesOrdersVo.getBusSalesOrder();
//全款且为三方金融
if ("1".equals(busSalesOrder.getPayTypeKey()) && "2".equals(busSalesOrder.getFinancePlan())) {
solutionsDetailsVo.setShowMore(false);
} else if ("2".equals(busSalesOrder.getPayTypeKey())) {//贷款
solutionsDetailsVo.setShowMore(true);
}
}
}
return rb.success().setData(solutionsDetailsVo);
}
@ -1456,6 +1511,12 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
solutionssVo.setOtherPolicySid(loanFinOtherPolicy.getSid());
solutionssVo.setOtherPolicyPeriod(String.valueOf(loanFinOtherPolicy.getPeriod()));
solutionssVo.setOtherPolicyYearRatio(loanFinOtherPolicy.getYearRatio().toString());
solutionssVo.setOtherPolicyIsMain(true);
}
}else{
LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.selectByMainSid(loanSolutions.getPolicySid());
if (loanFinOtherPolicy != null) {
solutionssVo.setOtherPolicyIsMain(true);
}
}
}
@ -1859,10 +1920,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
dealWayValue = dealWayValue.append("办理方式选择:").append("-");
}
list.add(getValueSpanSize(dealWayValue.toString(), 2, 2, false));
//抵顶费用合计
StringBuilder proxyTotalValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getProxyTotal())) {
proxyTotalValue = proxyTotalValue.append("代收合计:").append(solutionssVo.getOffsetTotal());
proxyTotalValue = proxyTotalValue.append("代收合计:").append(solutionssVo.getProxyTotal());
} else {
proxyTotalValue = proxyTotalValue.append("代收合计:").append("-");
}
@ -1971,9 +2031,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
//贴息抵车款
StringBuilder factoryDiscountUseMoneyValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getDiscountCar())) {
factoryDiscountUseMoneyValue = factoryDiscountUseValue.append("贴息抵车款:").append(solutionssVo.getDiscountCar());
factoryDiscountUseMoneyValue = factoryDiscountUseMoneyValue.append("贴息抵车款:").append(solutionssVo.getDiscountCar());
} else {
factoryDiscountUseMoneyValue = factoryDiscountUseValue.append("贴息抵车款:").append("-");
factoryDiscountUseMoneyValue = factoryDiscountUseMoneyValue.append("贴息抵车款:").append("-");
}
list.add(getValueSpanSize(factoryDiscountUseMoneyValue.toString(), 1, 0, false));
list.add(getValueSpanSize("应收明细", 2, 1, true));
@ -2013,6 +2073,46 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
SolutionssVo solutionssVo = new SolutionssVo();
BeanUtil.copyProperties(query, solutionssVo);
if (query.isShowMore()) {
if (query.isPremiumCb()) {
//保险
String premium = query.getPremium();
if (StringUtils.isBlank(premium)) {
return rb.setMsg("请输入保险金额");
} else {
if (StringUtils.isNotBlank(query.getOffsetPremium())) {
if (new BigDecimal(query.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
} else {
if (StringUtils.isNotBlank(query.getOffsetPremium())) {
if (new BigDecimal(query.getOffsetPremium()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
//是否勾选购置税
if (query.isPurchaseTaxCb()) {
//购置税
String purchaseTax = query.getPurchaseTax();
if (StringUtils.isBlank(purchaseTax)) {
return rb.setMsg("请输入购置税");
} else {
if (StringUtils.isNotBlank(query.getOffsetPurchasetax())) {
if (new BigDecimal(query.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
} else {
if (StringUtils.isNotBlank(query.getOffsetPurchasetax())) {
if (new BigDecimal(query.getOffsetPurchasetax()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
CalculateQuery calculateQuery = new CalculateQuery();
BeanUtil.copyProperties(query, calculateQuery);
ResultBean<CalculateVo> resultBean = calculate(calculateQuery);
@ -2027,6 +2127,10 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.success().setData(solutionssVo);
}
public LoanSolutions selectByApplySid(String sid) {
return baseMapper.selectByApplySid(sid);
}
/* @Autowired
private LoanSolutionsTopService loanSolutionsTopService;
@Autowired

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

@ -26,8 +26,12 @@ import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.SolutionDetailsDto;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionListVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionssVo;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy;
import com.yxt.anrui.riskcenter.api.loantemplate.*;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.SubmitTemplateDto;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery;
@ -40,6 +44,8 @@ import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailer;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerDto;
import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerVo;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.anrui.riskcenter.biz.loansolutionsdetail.LoanSolutionsDetailService;
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.FileUploadComponent;
@ -95,6 +101,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
private FileUploadComponent fileUploadComponent;
@Autowired
private LoanSolutionsService loanSolutionsService;
@Autowired
private LoanSolutionsOtherpolicyService loanSolutionsOtherpolicyService;
@Autowired
private LoanSolutionsDetailService loanSolutionsDetailService;
public PagerVo<LoanTemplateVo> listPageVo(PagerQuery<LoanTemplateQuery> pq) {
@ -548,7 +558,79 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
}
public ResultBean<TemplateApplyVo> getTemplateApply(String sid) {
return null;
ResultBean<TemplateApplyVo> rb = ResultBean.fireFail();
TemplateApplyVo templateApplyVo = new TemplateApplyVo();
LoanTemplate loanTemplate = fetchBySid(sid);
if (loanTemplate == null) {
return rb.setMsg("该申请不存在");
}
BeanUtil.copyProperties(loanTemplate, templateApplyVo, "sid");
templateApplyVo.setUserSid(loanTemplate.getCreateBySid());
templateApplyVo.setSid(loanTemplate.getSid());
templateApplyVo.setTaskId(loanTemplate.getTaskId());
templateApplyVo.setProcInstId(loanTemplate.getProcInstId());
LoanTemplateInstall loanTemplateInstall = loanTemplateInstallService.selectByMainSid(sid);
if (loanTemplateInstall != null) {
templateApplyVo.setInstall(true);
//根据上装配置sid查询上装配置信息
String installSid = loanTemplateInstall.getVehInstallModelSid();
ResultBean<BaseVehinstallmodelDetailsVo> installModelDetailsVoResultBean = baseVehinstallmodelFeign.fetchDetailsBySid(installSid);
if (installModelDetailsVoResultBean.getData() != null) {
BaseVehinstallmodelDetailsVo baseVehinstallmodelDetailsVo = installModelDetailsVoResultBean.getData();
LoanTemplateInstallVo loanTemplateInstallVo = new LoanTemplateInstallVo();
BeanUtil.copyProperties(installModelDetailsVoResultBean.getData(), loanTemplateInstallVo, "sid");
BeanUtil.copyProperties(loanTemplateInstall, loanTemplateInstallVo);
String wkSize = "长" + baseVehinstallmodelDetailsVo.getWk_long() + "mm,宽" + baseVehinstallmodelDetailsVo.getWk_wide() + "mm,高" + baseVehinstallmodelDetailsVo.getWk_high() + "mm";
loanTemplateInstallVo.setWkSize(wkSize);
String plateThickness = "底" + baseVehinstallmodelDetailsVo.getPlateThicknessBottom() + "mm,边" + baseVehinstallmodelDetailsVo.getPlateThicknessEdge() + "mm";
templateApplyVo.setLoanTemplateInstall(loanTemplateInstallVo);
}
}
LoanTemplateTrailer loanTemplateTrailer = loanTemplateTrailerService.selectByMainSid(sid);
if (loanTemplateTrailer != null) {
templateApplyVo.setTrailer(true);
//根据挂车配置sid查询挂车的配置信息
String trailerSid = loanTemplateTrailer.getVehTrailerModelSid();
ResultBean<BaseTrailerModelDetailsVo> trailerModelDetailsVoResultBean = baseTrailerModelFeign.fetchDetailsBySid(trailerSid);
if (trailerModelDetailsVoResultBean.getData() != null) {
BaseTrailerModelDetailsVo baseTrailerModelDetailsVo = trailerModelDetailsVoResultBean.getData();
LoanTemplateTrailerVo loanTemplateTrailerVo = new LoanTemplateTrailerVo();
BeanUtil.copyProperties(trailerModelDetailsVoResultBean.getData(), loanTemplateTrailerVo, "sid");
BeanUtil.copyProperties(loanTemplateTrailer, loanTemplateTrailerVo);
String files = loanTemplateTrailer.getVehTrailerCertificateFile();
if (StringUtils.isNotBlank(files)) {
List<String> fileList = Arrays.asList(files.split(","));
//拼接前缀
fileList = fileList.stream().map(v -> fileUploadComponent.getUrlPrefix() + v).collect(Collectors.toList());
loanTemplateTrailerVo.setVehTrailerCertificateFile(fileList);
}
//挂车车型名称:挂车类型(外观尺寸长宽高总高)
String trailerModelName = baseTrailerModelDetailsVo.getTrailerTypeValue() + "(长" + baseTrailerModelDetailsVo.getAppearanceSizeLong() + "mm,宽" + baseTrailerModelDetailsVo.getAppearanceSizeWide() + "mm,高" + baseTrailerModelDetailsVo.getAppearanceSizeHigh() + "mm,总高" + baseTrailerModelDetailsVo.getAppearanceSizeTotalHigh() + "mm";
loanTemplateTrailerVo.setModelTrailerName(trailerModelName);
String insideSize = "长" + baseTrailerModelDetailsVo.getInsideSizeLong() + "mm,宽" + baseTrailerModelDetailsVo.getInsideSizeWide() + "mm,高" + baseTrailerModelDetailsVo.getInsideSizeHigh() + "mm";
loanTemplateTrailerVo.setInsideSize(insideSize);
templateApplyVo.setLoanTemplateTrailer(loanTemplateTrailerVo);
}
}
SolutionssVo solutionssVo = new SolutionssVo();
//根据sid查询初始化
//根据关联sid查询是否存在金融方案
LoanSolutions loanSolutions = loanSolutionsService.selectByApplySid(sid);
if (loanSolutions != null) {
BeanUtil.copyProperties(loanSolutions, solutionssVo);
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (loanSolutionsOtherpolicy != null) {
BeanUtil.copyProperties(loanSolutionsOtherpolicy, solutionssVo);
}
LoanSolutionsDetail loanSolutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid());
if (loanSolutionsDetail != null) {
BeanUtil.copyProperties(loanSolutionsDetail, solutionssVo);
}
}
List<SolutionListVo> formList = loanSolutionsService.getFormList(solutionssVo);
templateApplyVo.setFinanceForms(formList);
return rb.success().setData(templateApplyVo);
}
@Transactional(rollbackFor = Exception.class)

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java

@ -1,14 +1,14 @@
package com.yxt.anrui.terminal.api.risk.loantemplate;
import com.yxt.anrui.terminal.api.supplychain.vehicleApply.VehicleApplyFeignFallback;
import com.yxt.anrui.terminal.api.supplychain.vehicleApply.VehicleApplyVo;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplatTaskQuery;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyDto;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyQuery;
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.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
/**
* @description:
@ -26,6 +26,31 @@ public interface TemplateFeign {
@ApiOperation("方案详情")
@GetMapping("/getTemplateApply/{sid}")
@ResponseBody
ResultBean<VehicleApplyVo> getTemplateApply(@PathVariable("sid") String sid);
ResultBean<TemplateVo> getTemplateApply(@PathVariable("sid") String sid);
@ApiOperation("办理")
@PutMapping("/agreeTemplateApplyInfo")
@ResponseBody
ResultBean agreeTemplateApplyInfo(@RequestBody TemplateApplyDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectTemplateApplyInfo")
@ResponseBody
ResultBean rejectTemplateApplyInfo(@RequestBody TemplatTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallTemplateApplyInfo")
@ResponseBody
ResultBean recallTemplateApplyInfo(@RequestBody TemplatTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopTemplateApplyInfo")
@ResponseBody
ResultBean stopTemplateApplyInfo(@RequestBody TemplatTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap TemplateApplyQuery query);
}

52
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateInstallVo.java

@ -0,0 +1,52 @@
package com.yxt.anrui.terminal.api.risk.loantemplate;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Data
public class TemplateInstallVo {
@ApiModelProperty("上装名称")
private String installNameValue;
@ApiModelProperty("委改方式")
private String refitMethodValue;
@ApiModelProperty("供应商")
private String refitFactory;
@ApiModelProperty("外廓尺寸_长")
@JsonIgnore
private String wk_long;
@ApiModelProperty("外廓尺寸_宽")
@JsonIgnore
private String wk_wide;
@ApiModelProperty("外廓尺寸_高")
@JsonIgnore
private String wk_high;
@ApiModelProperty("外廓尺寸")
private String wkSize;
@ApiModelProperty("板材材质")
private String plateMaterialValue;
@ApiModelProperty("板材厚度边")
@JsonIgnore
private String plateThicknessEdge;
@ApiModelProperty("板材厚度底")
@JsonIgnore
private String plateThicknessBottom;
@ApiModelProperty("板材厚度")
private String plateThickness;
@ApiModelProperty("颜色")
private String colorValue;
@ApiModelProperty("更多配置")
private String moreConfig;
@ApiModelProperty("融资价格")
private String vehInstallPrice;
@ApiModelProperty("备注说明")
private String vehInstallRemark;
@ApiModelProperty("上装配置sid")
private String vehInstallModelSid;
}

67
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateTrailerVo.java

@ -0,0 +1,67 @@
package com.yxt.anrui.terminal.api.risk.loantemplate;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Data
public class TemplateTrailerVo {
@ApiModelProperty("车型名称")
private String modelTrailerName;
@ApiModelProperty("挂车类型")
@JsonIgnore
private String trailerTypeValue;
@ApiModelProperty("车辆品牌")
private String brandName;
@ApiModelProperty("车辆型号名称")
private String carModelName;
@ApiModelProperty("生产厂商名称")
private String manufacturerName;
@ApiModelProperty("内部尺寸")
private String insideSize;
@ApiModelProperty("内部尺寸长")
@JsonIgnore
private String insideSizeLong;
@ApiModelProperty("内部尺寸宽")
@JsonIgnore
private String insideSizeWide;
@ApiModelProperty("内部尺寸高")
@JsonIgnore
private String insideSizeHigh;
@ApiModelProperty("外观尺寸长")
@JsonIgnore
private String appearanceSizeLong;
@ApiModelProperty("外观尺寸宽")
@JsonIgnore
private String appearanceSizeWide;
@ApiModelProperty("外观尺寸高")
@JsonIgnore
private String appearanceSizeHigh;
@ApiModelProperty("外观尺寸总高")
@JsonIgnore
private String appearanceSizeTotalHigh;
@ApiModelProperty("箱体颜色")
private String boxColor;
@ApiModelProperty("融资价格")
private String vehTrailerPrice;
@ApiModelProperty("更多配置")
private String moreConfig;
@ApiModelProperty("同车型合格证上传")
private List<String> vehTrailerCertificateFile = new ArrayList<>();
@ApiModelProperty("备注说明")
private String vehTrailerRemark;
@ApiModelProperty("挂车配置sid")
private String vehTrailerModelSid;
}

50
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java

@ -1,8 +1,14 @@
package com.yxt.anrui.terminal.api.risk.loantemplate;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.terminal.api.autoservice.saleOrders.order.OrderSolutionListVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +17,48 @@ import lombok.Data;
@Data
public class TemplateVo implements Vo {
private static final long serialVersionUID = 5875529565501843924L;
@ApiModelProperty(value = "实例id")
@JsonProperty("procInsId")
private String procInstId;
@ApiModelProperty(value = "taskId")
private String taskId;
private String sid;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("车型全组织sid")
private String modelOrgPath;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("方案key")
private String showTypeKey;
@ApiModelProperty("方案value")
private String showTypeValue;
@ApiModelProperty("车型sid")
private String vehModelSid;
@ApiModelProperty("车型名称")
private String vehModel;
@ApiModelProperty("配置sid")
private String vehModelConfigSid;
@ApiModelProperty("常用配置名称")
private String vehModelConfig;
@ApiModelProperty("更多配置名称")
private String vehModelConfigMore;
@ApiModelProperty("单台指导价")
private String vehPrice;
@ApiModelProperty("合格证公告型号")
private String vehNoticeModel;
@ApiModelProperty("是否包含上装")
private boolean install;
@ApiModelProperty("是否包含挂车")
private boolean trailer;
@ApiModelProperty("上装信息")
private TemplateInstallVo loanTemplateInstall;
@ApiModelProperty("挂车信息")
private TemplateTrailerVo loanTemplateTrailer;
private List<OrderSolutionListVo> financeForms = new ArrayList<>();
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/flowable/TemplatTaskQuery.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.risk.loantemplate.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Data
public class TemplatTaskQuery implements Query {
private static final long serialVersionUID = -433099622407821293L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

39
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/flowable/TemplateApplyDto.java

@ -0,0 +1,39 @@
package com.yxt.anrui.terminal.api.risk.loantemplate.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Data
public class TemplateApplyDto implements Dto {
private static final long serialVersionUID = -6876770959954200830L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
private String orgPath;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/flowable/TemplateApplyQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.loantemplate.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Data
public class TemplateApplyQuery implements Query {
private static final long serialVersionUID = -2400776719460867925L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/solutions/AppSolutionssDto.java

@ -16,6 +16,9 @@ import javax.validation.constraints.NotBlank;
public class AppSolutionssDto implements Dto {
private static final long serialVersionUID = 939727612021140148L;
@ApiModelProperty("展示更多")
@JsonProperty("isShowMore")
private boolean isShowMore;
@ApiModelProperty("关联sid")
@JsonProperty("saleOrderSid")
private String busSid;

54
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loantemplate/TemplateRest.java

@ -0,0 +1,54 @@
package com.yxt.anrui.terminal.biz.risk.loantemplate;
import com.yxt.anrui.terminal.api.risk.loantemplate.TemplateFeign;
import com.yxt.anrui.terminal.api.risk.loantemplate.TemplateVo;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplatTaskQuery;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyDto;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Controller
@RequestMapping("/risk/v1/Template")
public class TemplateRest implements TemplateFeign {
@Autowired
private TemplateService templateService;
@Override
public ResultBean<TemplateVo> getTemplateApply(String sid) {
return templateService.getTemplateApply(sid);
}
@Override
public ResultBean agreeTemplateApplyInfo(TemplateApplyDto dto) {
return templateService.agreeTemplateApplyInfo(dto);
}
@Override
public ResultBean rejectTemplateApplyInfo(TemplatTaskQuery query) {
return templateService.rejectTemplateApplyInfo(query);
}
@Override
public ResultBean recallTemplateApplyInfo(TemplatTaskQuery query) {
return templateService.recallTemplateApplyInfo(query);
}
@Override
public ResultBean stopTemplateApplyInfo(TemplatTaskQuery query) {
return templateService.stopTemplateApplyInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(TemplateApplyQuery query) {
return templateService.getFlowOperateTitle(query);
}
}

115
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loantemplate/TemplateService.java

@ -0,0 +1,115 @@
package com.yxt.anrui.terminal.biz.risk.loantemplate;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateFeign;
import com.yxt.anrui.riskcenter.api.loantemplate.TemplateApplyVo;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateApplyTaskQuery;
import com.yxt.anrui.riskcenter.api.loantemplate.flowable.TemplateCompleteDto;
import com.yxt.anrui.terminal.api.risk.loantemplate.TemplateVo;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplatTaskQuery;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyDto;
import com.yxt.anrui.terminal.api.risk.loantemplate.flowable.TemplateApplyQuery;
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;
/**
* @description:
* @author: dimengzhe
* @date: 2023/8/16
**/
@Service
public class TemplateService {
@Autowired
private LoanTemplateFeign loanTemplateFeign;
public ResultBean<TemplateVo> getTemplateApply(String sid) {
ResultBean<TemplateVo> rb = ResultBean.fireFail();
ResultBean<TemplateApplyVo> resultBean = loanTemplateFeign.getTemplateApply(sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
TemplateVo templateVo = new TemplateVo();
BeanUtil.copyProperties(resultBean.getData(), templateVo);
return rb.success().setData(templateVo);
}
public ResultBean agreeTemplateApplyInfo(TemplateApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
TemplateCompleteDto templateCompleteDto = new TemplateCompleteDto();
BeanUtil.copyProperties(dto, templateCompleteDto);
ResultBean resultBean = loanTemplateFeign.complete(templateCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectTemplateApplyInfo(TemplatTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
TemplateApplyTaskQuery templateApplyTaskQuery = new TemplateApplyTaskQuery();
BeanUtil.copyProperties(query, templateApplyTaskQuery);
ResultBean resultBean = loanTemplateFeign.taskReject(templateApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallTemplateApplyInfo(TemplatTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
TemplateApplyTaskQuery templateApplyTaskQuery = new TemplateApplyTaskQuery();
BeanUtil.copyProperties(query, templateApplyTaskQuery);
ResultBean resultBean = loanTemplateFeign.revokeProcess(templateApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopTemplateApplyInfo(TemplatTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
TemplateApplyTaskQuery templateApplyTaskQuery = new TemplateApplyTaskQuery();
BeanUtil.copyProperties(query, templateApplyTaskQuery);
ResultBean resultBean = loanTemplateFeign.breakProcess(templateApplyTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(TemplateApplyQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
TemplateApplyNodeQuery getNodeQuery = new TemplateApplyNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<TemplateApplyNodeVo>> getPreviousNodesForReject = loanTemplateFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<TemplateApplyNodeVo>> getNextNodesForSubmit = loanTemplateFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
}
Loading…
Cancel
Save