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. 28
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  5. 52
      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. 570
      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("代收购置费")

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

@ -4311,7 +4311,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
ResultBean<SolutionssVo> resultBean = loanSolutionsFeign.selectDetails2(sid);
if (resultBean.getData() != null) {
List<SolutionListVo> financeForms = resultBean.getData().getFinanceForms();
if(!financeForms.isEmpty()){
if (!financeForms.isEmpty()) {
List<OrderSolutionVo> voList = Optional.ofNullable(financeForms).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OrderSolutionVo.class)).collect(Collectors.toList());
appOrderDetailsVo.setFinanceForms(voList);
}
@ -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();

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

@ -368,7 +368,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
FinSelectedReceivablesDetailedDto finSelectedReceivablesDetailedDto = dingList.get(i);
BigDecimal currentReceivableMoney = new BigDecimal(finSelectedReceivablesDetailedDto.getCurrentReceivableMoney());
BigDecimal subscriptionMoney = new BigDecimal(finSelectedReceivablesDetailedDto.getSubscriptionMoney());
if(finSelectedReceivablesDetailedDto.getSubscribedOf() == 0){
if (finSelectedReceivablesDetailedDto.getSubscribedOf() == 0) {
if (subscriptionMoney.compareTo(currentReceivableMoney) > 0) {
return rb.setMsg("应收未收中的订金不允许多收,请检查");
}
@ -430,21 +430,21 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
String orgPath = dto.getOrgPath();
finCollectionConfirmation.setOrgSidPath(orgPath);
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if(sysOrganizationVoResultBean.getData() != null){
if (sysOrganizationVoResultBean.getData() != null) {
finCollectionConfirmation.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
}
}else{
} else {
//代收款
String orgPath = dto.getOrgPath();
finCollectionConfirmation.setOrgSidPath(orgPath);
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if(sysOrganizationVoResultBean.getData() != null){
if (sysOrganizationVoResultBean.getData() != null) {
finCollectionConfirmation.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
}
List<String> orgList = Arrays.asList(orgPath.split("/"));
orgList.set(orgList.size()-1,dto.getStaffDeptSid());
finCollectionConfirmation.setOrgSidPath(String.join("/",orgList));
orgList.set(orgList.size() - 1, dto.getStaffDeptSid());
finCollectionConfirmation.setOrgSidPath(String.join("/", orgList));
}
sid = finCollectionConfirmation.getSid();
@ -814,7 +814,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
String orgPath = dto.getOrgPath();
finCollectionConfirmation.setOrgSidPath(orgPath);
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(finCollectionConfirmation.getUseOrgSid());
if(sysOrganizationVoResultBean.getData() != null){
if (sysOrganizationVoResultBean.getData() != null) {
finCollectionConfirmation.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
}
if ("03".equals(dto.getCollectionTypeKey()) || "05".equals(dto.getCollectionTypeKey())) {
@ -1253,13 +1253,13 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (confirmation == null) {
return rb.setMsg("该申请不存在");
}
if("2".equals(confirmation.getAuditState())){
if ("2".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已驳回,不允许重复操作");
}
if("3".equals(confirmation.getAuditState())){
if ("3".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已审核通过,不允许驳回");
}
if("4".equals(confirmation.getAuditState())){
if ("4".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已撤回,不允许驳回");
}
if (confirmation.getFirst() == 1) {
@ -1667,13 +1667,13 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (confirmation == null) {
return rb.setMsg("该申请不存在");
}
if("3".equals(confirmation.getAuditState())){
if ("3".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已审核通过,不允许重复操作");
}
if("2".equals(confirmation.getAuditState())){
if ("2".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已驳回,不允许确认");
}
if("4".equals(confirmation.getAuditState())){
if ("4".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已撤回,不允许确认");
}
confirmation.setAuditState(3);
@ -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 {
// 成交价 = 车款+订金
@ -2758,13 +2774,13 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (confirmation == null) {
return rb.setMsg("该申请不存在");
}
if("3".equals(confirmation.getAuditState())){
if ("3".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已审核通过,不允许撤回");
}
if("4".equals(confirmation.getAuditState())){
if ("4".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已撤回,不允许重复撤回");
}
if("2".equals(confirmation.getAuditState())){
if ("2".equals(confirmation.getAuditState())) {
return rb.setMsg("该申请已驳回,不允许撤回");
}
if (!userSid.equals(confirmation.getCreateBySid())) {
@ -2845,7 +2861,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}
qw.eq("fsrd.auditState", 3);
qw.eq("fsrd.kxState","01");
qw.eq("fsrd.kxState", "01");
if (StringUtils.isNotBlank(query.getStaffDeptName())) {
qw.like("fcc.staffDeptName", query.getStaffDeptName());
}

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<>();
}

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

@ -686,249 +686,280 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
@Transactional(rollbackFor = Exception.class)
public ResultBean saveDtoss(SolutionDetailsDto dto) {
ResultBean rb = ResultBean.fireFail();
String mainVehicleAmount = dto.getMainVehicleAmount();
if (StringUtils.isBlank(mainVehicleAmount)) {
return rb.setMsg("主车发票价不能为空");
}
//是否勾选融资票据
if (dto.isAccessoriesAmountCb()) {
//融资票据
String accessoriesAmount = dto.getAccessoriesAmount();
if (StringUtils.isBlank(accessoriesAmount)) {
return rb.setMsg("请输入配件");
//查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getBusSid());
if(dto.isShowMore()){
String mainVehicleAmount = dto.getMainVehicleAmount();
if (StringUtils.isBlank(mainVehicleAmount)) {
return rb.setMsg("主车发票价不能为空");
}
}
//是否勾选挂车
if (dto.isTrailerAmountCb()) {
//挂车
String trailerAmount = dto.getTrailerAmount();
if (StringUtils.isBlank(trailerAmount)) {
return rb.setMsg("请输入挂车金额");
//是否勾选融资票据
if (dto.isAccessoriesAmountCb()) {
//融资票据
String accessoriesAmount = dto.getAccessoriesAmount();
if (StringUtils.isBlank(accessoriesAmount)) {
return rb.setMsg("请输入配件");
}
}
}
//是否勾选保险
if (dto.isPremiumCb()) {
//保险
String premium = dto.getPremium();
if (StringUtils.isBlank(premium)) {
return rb.setMsg("请输入保险金额");
//是否勾选挂车
if (dto.isTrailerAmountCb()) {
//挂车
String trailerAmount = dto.getTrailerAmount();
if (StringUtils.isBlank(trailerAmount)) {
return rb.setMsg("请输入挂车金额");
}
}
//是否勾选保险
if (dto.isPremiumCb()) {
//保险
String premium = dto.getPremium();
if (StringUtils.isBlank(premium)) {
return rb.setMsg("请输入保险金额");
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 0) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
}
}
}
} else {
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶首年保险费不能超过保险费用");
//是否勾选购置税
if (dto.isPurchaseTaxCb()) {
//购置税
String purchaseTax = dto.getPurchaseTax();
if (StringUtils.isBlank(purchaseTax)) {
return rb.setMsg("请输入购置税");
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
}
}
//是否勾选购置税
if (dto.isPurchaseTaxCb()) {
//购置税
String purchaseTax = dto.getPurchaseTax();
if (StringUtils.isBlank(purchaseTax)) {
return rb.setMsg("请输入购置税");
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
}
}
} else {
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) {
if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(BigDecimal.ZERO) > 0) {
return rb.setMsg("抵顶购置税不能超过购置税");
}
//产品期数
String loanPeriod = dto.getLoanPeriod();
if (StringUtils.isBlank(loanPeriod)) {
return rb.setMsg("主方案期数不能为空");
}
if (loanSolutions != null) {
baseMapper.deleteByOrderSid(dto.getBusSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid());
}
}
//产品期数
String loanPeriod = dto.getLoanPeriod();
if (StringUtils.isBlank(loanPeriod)) {
return rb.setMsg("主方案期数不能为空");
}
//查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getBusSid());
if (loanSolutions != null) {
baseMapper.deleteByOrderSid(dto.getBusSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid());
}
//保存金融方案
loanSolutions = new LoanSolutions();
loanSolutions.setSaleOrderState(1);
if (StringUtils.isNotBlank(dto.getBusSid())) {
loanSolutions.setSalesOrderSid(dto.getBusSid());
}
BeanUtil.copyProperties(dto, loanSolutions, "sid");
//主车发票价
loanSolutions.setMainVehicleAmount(new BigDecimal(mainVehicleAmount));
//是否勾选融资票据
loanSolutions.setAccessoriesAmountCb(dto.isAccessoriesAmountCb() ? 1 : 0);
loanSolutions.setAccessoriesAmount(dto.isAccessoriesAmountCb() ? new BigDecimal(dto.getAccessoriesAmount()) : BigDecimal.ZERO);
//是否勾选挂车
loanSolutions.setTrailerAmountCb(dto.isTrailerAmountCb() ? 1 : 0);
loanSolutions.setTrailerAmount(dto.isTrailerAmountCb() ? new BigDecimal(dto.getTrailerAmount()) : BigDecimal.ZERO);
//是否勾选保险
loanSolutions.setPremiumCb(dto.isPremiumCb() ? 1 : 0);
if (StringUtils.isNotBlank(dto.getPremium())) {
loanSolutions.setPremium(new BigDecimal(dto.getPremium()));
}
//保存金融方案
loanSolutions = new LoanSolutions();
loanSolutions.setSaleOrderState(1);
if (StringUtils.isNotBlank(dto.getBusSid())) {
loanSolutions.setSalesOrderSid(dto.getBusSid());
}
BeanUtil.copyProperties(dto, loanSolutions, "sid");
//主车发票价
loanSolutions.setMainVehicleAmount(new BigDecimal(mainVehicleAmount));
//是否勾选融资票据
loanSolutions.setAccessoriesAmountCb(dto.isAccessoriesAmountCb() ? 1 : 0);
loanSolutions.setAccessoriesAmount(dto.isAccessoriesAmountCb() ? new BigDecimal(dto.getAccessoriesAmount()) : BigDecimal.ZERO);
//是否勾选挂车
loanSolutions.setTrailerAmountCb(dto.isTrailerAmountCb() ? 1 : 0);
loanSolutions.setTrailerAmount(dto.isTrailerAmountCb() ? new BigDecimal(dto.getTrailerAmount()) : BigDecimal.ZERO);
//是否勾选保险
loanSolutions.setPremiumCb(dto.isPremiumCb() ? 1 : 0);
if (StringUtils.isNotBlank(dto.getPremium())) {
loanSolutions.setPremium(new BigDecimal(dto.getPremium()));
}
// loanSolutions.setPremium(StringUtils.isNotBlank(dto.getPremium()) ? new BigDecimal(dto.getPremium()) : BigDecimal.ZERO);
//是否勾选购置税
loanSolutions.setPurchaseTaxCb(dto.isPurchaseTaxCb() ? 1 : 0);
//是否勾选购置税
loanSolutions.setPurchaseTaxCb(dto.isPurchaseTaxCb() ? 1 : 0);
// loanSolutions.setPurchaseTax(StringUtils.isNotBlank(dto.getPurchaseTax()) ? new BigDecimal(dto.getPurchaseTax()) : BigDecimal.ZERO);
if (StringUtils.isNotBlank(dto.getPurchaseTax())) {
loanSolutions.setPurchaseTax(new BigDecimal(dto.getPurchaseTax()));
}
//项目融资总额
String loanTotal = dto.getLoanTotal();
loanSolutions.setLoanTotal(StringUtils.isNotBlank(loanTotal) ? new BigDecimal(loanTotal) : BigDecimal.ZERO);
//首付比例
String downPayRatio = dto.getDownPayRatio();
loanSolutions.setDownPayRatio(downPayRatio);
//首付金额
String downPayAmount = dto.getDownPayAmount();
loanSolutions.setDownPayAmount(StringUtils.isNotBlank(downPayAmount) ? new BigDecimal(downPayAmount) : BigDecimal.ZERO);
//贷款金额
String loanAmount = dto.getLoanAmount();
loanSolutions.setLoanAmount(StringUtils.isNotBlank(loanAmount) ? new BigDecimal(loanAmount) : BigDecimal.ZERO);
//贷款保证金比例
String bondRatio = dto.getBondRatio();
loanSolutions.setBondRatio(bondRatio);
//期数
loanSolutions.setLoanPeriod(loanPeriod);
//保证金金额
String bondAmount = dto.getBondAmount();
loanSolutions.setBondAmount(StringUtils.isNotBlank(bondAmount) ? new BigDecimal(bondAmount) : BigDecimal.ZERO);
//厂家贴息
String factoryDiscount = dto.getFactoryDiscount();
loanSolutions.setFactoryDiscount(StringUtils.isNotBlank(factoryDiscount) ? new BigDecimal(factoryDiscount) : BigDecimal.ZERO);
String discountCar = dto.getDiscountCar();
loanSolutions.setDiscountCar(StringUtils.isNotBlank(discountCar) ? new BigDecimal(discountCar) : BigDecimal.ZERO);
//年利率
String policyYearRatio = dto.getPolicyYearRatio();
loanSolutions.setPolicyYearRatio(policyYearRatio);
//月还金额
String loanPayMoney = dto.getLoanPayMoney();
loanSolutions.setLoanPayMoney(StringUtils.isNotBlank(loanPayMoney) ? new BigDecimal(loanPayMoney) : BigDecimal.ZERO);
//利息总额
String loanInterest = dto.getLoanInterest();
loanSolutions.setLoanInterest(StringUtils.isNotBlank(loanInterest) ? new BigDecimal(loanInterest) : BigDecimal.ZERO);
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = new LoanSolutionsOtherpolicy();
if (dto.isOtherPolicyState()) {
BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid");
if (StringUtils.isNotBlank(dto.getPurchaseTax())) {
loanSolutions.setPurchaseTax(new BigDecimal(dto.getPurchaseTax()));
}
//项目融资总额
String loanTotal = dto.getLoanTotal();
loanSolutions.setLoanTotal(StringUtils.isNotBlank(loanTotal) ? new BigDecimal(loanTotal) : BigDecimal.ZERO);
//首付比例
String downPayRatio = dto.getDownPayRatio();
loanSolutions.setDownPayRatio(downPayRatio);
//首付金额
String downPayAmount = dto.getDownPayAmount();
loanSolutions.setDownPayAmount(StringUtils.isNotBlank(downPayAmount) ? new BigDecimal(downPayAmount) : BigDecimal.ZERO);
//贷款金额
String otherPolicyAmount = dto.getOtherPolicyAmount();
loanSolutionsOtherpolicy.setOtherPolicyAmount(StringUtils.isNotBlank(otherPolicyAmount) ? new BigDecimal(otherPolicyAmount) : BigDecimal.ZERO);
//其它融月还
String otherPolicyMonthlyRepay = dto.getOtherPolicyMonthlyRepay();
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(StringUtils.isNotBlank(otherPolicyMonthlyRepay) ? new BigDecimal(otherPolicyMonthlyRepay) : BigDecimal.ZERO);
//其它融利息总额
String otherPolicyInterest = dto.getOtherPolicyInterest();
loanSolutionsOtherpolicy.setOtherPolicyInterest(StringUtils.isNotBlank(otherPolicyInterest) ? new BigDecimal(otherPolicyInterest) : BigDecimal.ZERO);
loanSolutions.setOtherPolicyState(1);
String loanDownPay = dto.getLoanDownPay();
loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO);
} else {
BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid");
String loanDownPay = dto.getLoanDownPay();
loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyAmount(BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyInterest(BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyPeriod("");
loanSolutionsOtherpolicy.setOtherPolicyYearRatio("");
loanSolutionsOtherpolicy.setOtherPolicyName("");
loanSolutions.setOtherPolicyState(0);
}
baseMapper.insert(loanSolutions);
loanSolutionsOtherpolicy.setSolutionsSid(loanSolutions.getSid());
loanSolutionsOtherpolicyService.insert(loanSolutionsOtherpolicy);
/***********************应收明细************************************/
LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail();
BeanUtil.copyProperties(dto, loanSolutionsDetail, "sid");
//融资首付
String downPayAmounts = dto.getDownPayAmounts();
loanSolutionsDetail.setDownPayAmounts(StringUtils.isNotBlank(downPayAmounts) ? new BigDecimal(downPayAmounts) : BigDecimal.ZERO);
//贷款保证金
String bondAmounts = dto.getBondAmounts();
loanSolutionsDetail.setBondAmounts(StringUtils.isNotBlank(bondAmounts) ? new BigDecimal(bondAmounts) : BigDecimal.ZERO);
//保险保证金
String depositPremium = dto.getDepositPremium();
loanSolutionsDetail.setDepositPremium(StringUtils.isNotBlank(depositPremium) ? new BigDecimal(depositPremium) : BigDecimal.ZERO);
//落户保证金
String depositSettle = dto.getDepositSettle();
loanSolutionsDetail.setDepositSettle(StringUtils.isNotBlank(depositSettle) ? new BigDecimal(depositSettle) : BigDecimal.ZERO);
//服务费
String serviceAmount = dto.getServiceAmount();
loanSolutionsDetail.setServiceAmount(StringUtils.isNotBlank(serviceAmount) ? new BigDecimal(serviceAmount) : BigDecimal.ZERO);
//代收意外险
String proxyAccidentPremium = dto.getProxyAccidentPremium();
loanSolutionsDetail.setProxyAccidentPremium(StringUtils.isNotBlank(proxyAccidentPremium) ? new BigDecimal(proxyAccidentPremium) : BigDecimal.ZERO);
//上牌费
String registerAmount = dto.getRegisterAmount();
loanSolutionsDetail.setRegisterAmount(StringUtils.isNotBlank(registerAmount) ? new BigDecimal(registerAmount) : BigDecimal.ZERO);
//运管费
String operationAmount = dto.getOperationAmount();
loanSolutionsDetail.setOperationAmount(StringUtils.isNotBlank(operationAmount) ? new BigDecimal(operationAmount) : BigDecimal.ZERO);
//补车价
String vehOtherPrice = dto.getVehOtherPrice();
loanSolutionsDetail.setVehOtherPrice(StringUtils.isNotBlank(vehOtherPrice) ? new BigDecimal(vehOtherPrice) : BigDecimal.ZERO);
//其它费用
String otherAmount = dto.getOtherAmount();
loanSolutionsDetail.setOtherAmount(StringUtils.isNotBlank(otherAmount) ? new BigDecimal(otherAmount) : BigDecimal.ZERO);
//代收首年保险费
String proxyPremium = dto.getProxyPremium();
loanSolutionsDetail.setProxyPremium(StringUtils.isNotBlank(proxyPremium) ? new BigDecimal(proxyPremium) : BigDecimal.ZERO);
//代收购置费
String proxyPurchasetax = dto.getProxyPurchasetax();
loanSolutionsDetail.setProxyPurchasetax(StringUtils.isNotBlank(proxyPurchasetax) ? new BigDecimal(proxyPurchasetax) : BigDecimal.ZERO);
//抵顶首年保险费
String offsetPremium = dto.getOffsetPremium();
//抵顶购置税
String offsetPurchasetax = dto.getOffsetPurchasetax();
if ("0".equals(dto.getIsPack())) {
loanSolutionsDetail.setOffsetPremium(BigDecimal.ZERO);
loanSolutionsDetail.setOffsetPurchasetax(BigDecimal.ZERO);
} else {
if (!dto.isPremiumCb()) {
String loanAmount = dto.getLoanAmount();
loanSolutions.setLoanAmount(StringUtils.isNotBlank(loanAmount) ? new BigDecimal(loanAmount) : BigDecimal.ZERO);
//贷款保证金比例
String bondRatio = dto.getBondRatio();
loanSolutions.setBondRatio(bondRatio);
//期数
loanSolutions.setLoanPeriod(loanPeriod);
//保证金金额
String bondAmount = dto.getBondAmount();
loanSolutions.setBondAmount(StringUtils.isNotBlank(bondAmount) ? new BigDecimal(bondAmount) : BigDecimal.ZERO);
//厂家贴息
String factoryDiscount = dto.getFactoryDiscount();
loanSolutions.setFactoryDiscount(StringUtils.isNotBlank(factoryDiscount) ? new BigDecimal(factoryDiscount) : BigDecimal.ZERO);
String discountCar = dto.getDiscountCar();
loanSolutions.setDiscountCar(StringUtils.isNotBlank(discountCar) ? new BigDecimal(discountCar) : BigDecimal.ZERO);
//年利率
String policyYearRatio = dto.getPolicyYearRatio();
loanSolutions.setPolicyYearRatio(policyYearRatio);
//月还金额
String loanPayMoney = dto.getLoanPayMoney();
loanSolutions.setLoanPayMoney(StringUtils.isNotBlank(loanPayMoney) ? new BigDecimal(loanPayMoney) : BigDecimal.ZERO);
//利息总额
String loanInterest = dto.getLoanInterest();
loanSolutions.setLoanInterest(StringUtils.isNotBlank(loanInterest) ? new BigDecimal(loanInterest) : BigDecimal.ZERO);
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = new LoanSolutionsOtherpolicy();
if (dto.isOtherPolicyState()) {
BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid");
//贷款金额
String otherPolicyAmount = dto.getOtherPolicyAmount();
loanSolutionsOtherpolicy.setOtherPolicyAmount(StringUtils.isNotBlank(otherPolicyAmount) ? new BigDecimal(otherPolicyAmount) : BigDecimal.ZERO);
//其它融月还
String otherPolicyMonthlyRepay = dto.getOtherPolicyMonthlyRepay();
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(StringUtils.isNotBlank(otherPolicyMonthlyRepay) ? new BigDecimal(otherPolicyMonthlyRepay) : BigDecimal.ZERO);
//其它融利息总额
String otherPolicyInterest = dto.getOtherPolicyInterest();
loanSolutionsOtherpolicy.setOtherPolicyInterest(StringUtils.isNotBlank(otherPolicyInterest) ? new BigDecimal(otherPolicyInterest) : BigDecimal.ZERO);
loanSolutions.setOtherPolicyState(1);
String loanDownPay = dto.getLoanDownPay();
loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO);
} else {
BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid");
String loanDownPay = dto.getLoanDownPay();
loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyAmount(BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyInterest(BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyPeriod("");
loanSolutionsOtherpolicy.setOtherPolicyYearRatio("");
loanSolutionsOtherpolicy.setOtherPolicyName("");
loanSolutions.setOtherPolicyState(0);
}
baseMapper.insert(loanSolutions);
loanSolutionsOtherpolicy.setSolutionsSid(loanSolutions.getSid());
loanSolutionsOtherpolicyService.insert(loanSolutionsOtherpolicy);
/***********************应收明细************************************/
LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail();
BeanUtil.copyProperties(dto, loanSolutionsDetail, "sid");
//融资首付
String downPayAmounts = dto.getDownPayAmounts();
loanSolutionsDetail.setDownPayAmounts(StringUtils.isNotBlank(downPayAmounts) ? new BigDecimal(downPayAmounts) : BigDecimal.ZERO);
//贷款保证金
String bondAmounts = dto.getBondAmounts();
loanSolutionsDetail.setBondAmounts(StringUtils.isNotBlank(bondAmounts) ? new BigDecimal(bondAmounts) : BigDecimal.ZERO);
//保险保证金
String depositPremium = dto.getDepositPremium();
loanSolutionsDetail.setDepositPremium(StringUtils.isNotBlank(depositPremium) ? new BigDecimal(depositPremium) : BigDecimal.ZERO);
//落户保证金
String depositSettle = dto.getDepositSettle();
loanSolutionsDetail.setDepositSettle(StringUtils.isNotBlank(depositSettle) ? new BigDecimal(depositSettle) : BigDecimal.ZERO);
//服务费
String serviceAmount = dto.getServiceAmount();
loanSolutionsDetail.setServiceAmount(StringUtils.isNotBlank(serviceAmount) ? new BigDecimal(serviceAmount) : BigDecimal.ZERO);
//代收意外险
String proxyAccidentPremium = dto.getProxyAccidentPremium();
loanSolutionsDetail.setProxyAccidentPremium(StringUtils.isNotBlank(proxyAccidentPremium) ? new BigDecimal(proxyAccidentPremium) : BigDecimal.ZERO);
//上牌费
String registerAmount = dto.getRegisterAmount();
loanSolutionsDetail.setRegisterAmount(StringUtils.isNotBlank(registerAmount) ? new BigDecimal(registerAmount) : BigDecimal.ZERO);
//运管费
String operationAmount = dto.getOperationAmount();
loanSolutionsDetail.setOperationAmount(StringUtils.isNotBlank(operationAmount) ? new BigDecimal(operationAmount) : BigDecimal.ZERO);
//补车价
String vehOtherPrice = dto.getVehOtherPrice();
loanSolutionsDetail.setVehOtherPrice(StringUtils.isNotBlank(vehOtherPrice) ? new BigDecimal(vehOtherPrice) : BigDecimal.ZERO);
//其它费用
String otherAmount = dto.getOtherAmount();
loanSolutionsDetail.setOtherAmount(StringUtils.isNotBlank(otherAmount) ? new BigDecimal(otherAmount) : BigDecimal.ZERO);
//代收首年保险费
String proxyPremium = dto.getProxyPremium();
loanSolutionsDetail.setProxyPremium(StringUtils.isNotBlank(proxyPremium) ? new BigDecimal(proxyPremium) : BigDecimal.ZERO);
//代收购置费
String proxyPurchasetax = dto.getProxyPurchasetax();
loanSolutionsDetail.setProxyPurchasetax(StringUtils.isNotBlank(proxyPurchasetax) ? new BigDecimal(proxyPurchasetax) : BigDecimal.ZERO);
//抵顶首年保险费
String offsetPremium = dto.getOffsetPremium();
//抵顶购置税
String offsetPurchasetax = dto.getOffsetPurchasetax();
if ("0".equals(dto.getIsPack())) {
loanSolutionsDetail.setOffsetPremium(BigDecimal.ZERO);
loanSolutionsDetail.setOffsetPurchasetax(BigDecimal.ZERO);
} else {
loanSolutionsDetail.setOffsetPremium(StringUtils.isNotBlank(offsetPremium) ? new BigDecimal(offsetPremium) : BigDecimal.ZERO);
if (!dto.isPremiumCb()) {
loanSolutionsDetail.setOffsetPremium(BigDecimal.ZERO);
} else {
loanSolutionsDetail.setOffsetPremium(StringUtils.isNotBlank(offsetPremium) ? new BigDecimal(offsetPremium) : BigDecimal.ZERO);
}
if (!dto.isPurchaseTaxCb()) {
loanSolutionsDetail.setOffsetPurchasetax(BigDecimal.ZERO);
} else {
loanSolutionsDetail.setOffsetPurchasetax(StringUtils.isNotBlank(offsetPurchasetax) ? new BigDecimal(offsetPurchasetax) : BigDecimal.ZERO);
}
}
if (!dto.isPurchaseTaxCb()) {
loanSolutionsDetail.setOffsetPurchasetax(BigDecimal.ZERO);
String proxyTotal = dto.getProxyTotal();
loanSolutionsDetail.setProxyTotal(StringUtils.isNotBlank(proxyTotal) ? new BigDecimal(proxyTotal) : BigDecimal.ZERO);
String offsetTotal = dto.getOffsetTotal();
loanSolutionsDetail.setOffsetTotal(StringUtils.isNotBlank(offsetTotal) ? new BigDecimal(offsetTotal) : BigDecimal.ZERO);
//应收合计
String receivableTotal = dto.getReceivableTotal();
loanSolutionsDetail.setReceivableTotal(StringUtils.isNotBlank(receivableTotal) ? new BigDecimal(receivableTotal) : BigDecimal.ZERO);
//实收合计
String realTotal = dto.getRealTotal();
loanSolutionsDetail.setRealTotal(StringUtils.isNotBlank(realTotal) ? new BigDecimal(realTotal) : BigDecimal.ZERO);
//车辆总价
String vehTotalPrice = dto.getVehTotalPrice();
loanSolutionsDetail.setVehTotalPrice(StringUtils.isNotBlank(vehTotalPrice) ? new BigDecimal(vehTotalPrice) : BigDecimal.ZERO);
//名义留购价
String nominalPrice = dto.getNominalPrice();
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.setOffsetPurchasetax(StringUtils.isNotBlank(offsetPurchasetax) ? new BigDecimal(offsetPurchasetax) : BigDecimal.ZERO);
}
}
String proxyTotal = dto.getProxyTotal();
loanSolutionsDetail.setProxyTotal(StringUtils.isNotBlank(proxyTotal) ? new BigDecimal(proxyTotal) : BigDecimal.ZERO);
String offsetTotal = dto.getOffsetTotal();
loanSolutionsDetail.setOffsetTotal(StringUtils.isNotBlank(offsetTotal) ? new BigDecimal(offsetTotal) : BigDecimal.ZERO);
//应收合计
String receivableTotal = dto.getReceivableTotal();
loanSolutionsDetail.setReceivableTotal(StringUtils.isNotBlank(receivableTotal) ? new BigDecimal(receivableTotal) : BigDecimal.ZERO);
//实收合计
String realTotal = dto.getRealTotal();
loanSolutionsDetail.setRealTotal(StringUtils.isNotBlank(realTotal) ? new BigDecimal(realTotal) : BigDecimal.ZERO);
//车辆总价
String vehTotalPrice = dto.getVehTotalPrice();
loanSolutionsDetail.setVehTotalPrice(StringUtils.isNotBlank(vehTotalPrice) ? new BigDecimal(vehTotalPrice) : BigDecimal.ZERO);
//名义留购价
String nominalPrice = dto.getNominalPrice();
loanSolutionsDetail.setNominalPrice(StringUtils.isNotBlank(nominalPrice) ? new BigDecimal(nominalPrice) : BigDecimal.ZERO);
loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid());
loanSolutionsDetailService.insert(loanSolutionsDetail);
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