Browse Source

交回车辆出库模块

master
fanzongzhe 1 year ago
parent
commit
c2202c4780
  1. 2
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java
  3. 3
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java
  4. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java
  5. 50
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java
  6. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java
  7. 32
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java
  8. 36
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java
  9. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java
  10. 50
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java
  11. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java
  12. 7
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java
  13. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java
  14. 27
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml
  15. 1390
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java
  16. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java
  17. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml
  18. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java
  19. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java
  20. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml
  21. 63
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java
  22. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java
  23. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml
  24. 94
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java
  25. 32
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/AppOutBoundVehApplyVinList.java
  26. 52
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/OutBoundVehApplyDetailsVo.java
  27. 67
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/OutBoundVehApplyFeign.java
  28. 52
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/OutBoundVehApplyFeignFallback.java
  29. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/AppOutBoundVehApplyDelegateQuery.java
  30. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/AppOutBoundVehApplyTaskQuery.java
  31. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/CompleteOutBoundVehApplyDto.java
  32. 21
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/OutBoundVehApplyFlowableQuery.java
  33. 68
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/outBoundVeh/OutBoundVehApplyRest.java
  34. 157
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/outBoundVeh/OutBoundVehApplyService.java

2
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -73,7 +73,7 @@ public enum ProcDefEnum {
LOANREDEMPTIONAPPLY("车辆交回赎回申请", "process_qu4fq4r6:1:7820004"),
LOANRETUENINBOUNDAPPLY("交回车辆入库申请", "process_h0i1vnn8:1:7945004"),
LOANSUBLETAPPLY("交回车辆二次转租申请", "process_lu7pdwzs:1:7940004"),
LOANOUTBOUNDVEHAPPLY("交回车辆出库申请", ""),
LOANOUTBOUNDVEHAPPLY("交回车辆出库申请", "process_14spbdx8:1:7982504"),
/******************************测试流程id*********************************************/

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java

@ -1,5 +1,10 @@
package com.yxt.anrui.riskcenter.api.loanfile;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyFile;
import java.util.ArrayList;
import java.util.List;
/**
* @Author fan
* @Date 2022/11/14 22:46
@ -31,6 +36,10 @@ public enum LoanFileEnum {
RESTOREREPORT("022", "车辆交回事前报备附件"),
REDEMPTION("023", "车辆交回赎回申请附件"),
SUBLETAPPLY("024", "车辆交回二次转租申请附件"),
BUYFILES("025", "交回车辆出库车辆买卖协议"),
DELIVERYFILES("026", "交回车辆出库车辆交付确认书"),
ASSESSFILES("027", "交回车辆出库车辆完整评估照片"),
OTHERFILES("028", "交回车辆出库其他附件"),
;

3
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApply.java

@ -76,5 +76,6 @@ public class LoanOutboundApply extends BaseEntity {
private String phoneNum;
@ApiModelProperty("出库日期")
private Date outboundDate;
@ApiModelProperty("处置合同号")
private String disposalContractNo;
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyDto.java

@ -48,6 +48,8 @@ public class LoanOutboundApplyDto implements Dto {
private String newCustomerSid;
@ApiModelProperty("新客户联系电话")
private String phoneNum;
@ApiModelProperty("处置合同号")
private String disposalContractNo;
@ApiModelProperty("处置车辆列表")
private List<OutboundVinListDto> vinList = new ArrayList<>();
}

50
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyInit.java

@ -22,48 +22,30 @@ public class LoanOutboundApplyInit implements Vo {
private String deptSid;
private String applyName;
private String applyDate;
private String applySid; //处置申请sid
private String orgPath;
@ApiModelProperty("处置合同号")
private String disposalContractNo;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")
private String instanceId;
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
private String bankContractNo;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("二次转租价格")
@ApiModelProperty("出库价格")
private String amount;
@ApiModelProperty("转租方案说明")
private String plan;
@ApiModelProperty("原车主是否同意")
private String agree;
@ApiModelProperty("新车主名称")
private String vinOwner;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("客户名称")
private String newCustomer;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("证件地址")
private String cardAddress;
@ApiModelProperty("有效期")
private String endDate;
@ApiModelProperty("证件号码")
private String idNumber;
@ApiModelProperty("证件类型key")
private String certificateTypeKey;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
@ApiModelProperty("新车主客户sid")
private String newCustomerSid;
private List<LoanOutboundApplyFile> files = new ArrayList<>();
@ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)")
private String disposal;
@ApiModelProperty("处置方式key")
private String disposalKey;
private List<LoanOutboundApplyFile> buyFiles = new ArrayList<>(); //车辆买卖协议
private List<LoanOutboundApplyFile> deliveryFiles = new ArrayList<>(); //车辆交付确认书
private List<LoanOutboundApplyFile> assessFiles = new ArrayList<>(); //车辆完整评估照片
private List<LoanOutboundApplyFile> otherFiles = new ArrayList<>(); //其他附件
private List<OutboundVinList> vinList = new ArrayList<>();
}

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyQuery.java

@ -44,6 +44,8 @@ public class LoanOutboundApplyQuery implements Query {
private String vehMark;
@ApiModelProperty("申请部门")
private String dept;
@ApiModelProperty("原车主是否同意0是1否")
private String agree;
@ApiModelProperty("处置方式key")
private String disposalKey;
private String outStartDate; //出库日期
private String outEndDate;
}

32
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanOutboundApplyVo.java

@ -4,6 +4,9 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author Administrator
* @description
@ -25,12 +28,12 @@ public class LoanOutboundApplyVo implements Vo {
private String applyDate; // 申请日期
@ApiModelProperty("办结日期")
private String closingDate;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("消贷合同号")
private String loanContractNo;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("资方")
private String bankName;
@ApiModelProperty("资方合同号")
@ -39,12 +42,19 @@ public class LoanOutboundApplyVo implements Vo {
private String customer;
@ApiModelProperty("贷款人")
private String borrowerName;
@ApiModelProperty("二次转租价格")
@ApiModelProperty("出库价格")
private String amount;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("原车主是否同意0是1否")
private String agree;
@ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)")
private String disposal;
@ApiModelProperty("新车主名称")
private String newCustomer;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("出库日期")
private String outboundDate;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
}

36
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/LoanUpdateApplyDto.java

@ -1,8 +1,12 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
@ -10,7 +14,35 @@ import lombok.Data;
*/
@Data
public class LoanUpdateApplyDto implements Dto {
private String sid;
private String userSid;
private String dept;
private String deptSid;
private String applyName;
private String applyDate;
private String applySid; //处置申请sid
private String orgPath;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")
private String instanceId;
@ApiModelProperty("出库价格")
private String amount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("客户名称")
private String newCustomer;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)")
private String disposal;
@ApiModelProperty("处置方式key")
private String disposalKey;
@ApiModelProperty("处置合同号")
private String disposalContractNo;
private List<LoanOutboundApplyFile> buyFiles = new ArrayList<>(); //车辆买卖协议
private List<LoanOutboundApplyFile> deliveryFiles = new ArrayList<>(); //车辆交付确认书
private List<LoanOutboundApplyFile> assessFiles = new ArrayList<>(); //车辆完整评估照片
private List<LoanOutboundApplyFile> otherFiles = new ArrayList<>(); //其他附件
private List<OutboundVinList> vinList = new ArrayList<>();
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/OutboundVinList.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loanoutboundapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -9,11 +10,16 @@ import lombok.Data;
*/
@Data
public class OutboundVinList {
private String ledgerSid;
private String vinSid;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("主车/挂车")
private String vehType;
@ApiModelProperty("车型")
private String vehModel;
private String busVinSid;
@ApiModelProperty("存放地点")
private String location;
@ApiModelProperty("交回车辆台账sid")
private String ledgerSid;
}

50
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundDetailsVo.java

@ -16,57 +16,35 @@ public class AppOutboundDetailsVo {
private String sid;
private String publishInfo;
private String time; //申请日期
private List<String> files = new ArrayList<>();
private List<String> buyFiles = new ArrayList<>(); //车辆买卖协议
private List<String> deliveryFiles = new ArrayList<>(); //车辆交付确认书
private List<String> assessFiles = new ArrayList<>(); //车辆完整评估照片
private List<String> otherFiles = new ArrayList<>(); //其他附件
private String taskId;
private String procInsId;
private String applySid; //处置申请sid
/**
* 本次转租金额
* 出库金额
*/
private String amount;
/**
* 资方合同号
*/
private String bankContractNo;
/**
* 资方
*/
private String bankName;
/**
* 贷款人
*/
private String borrName;
/**
* 原车主是否同意 0是 1否
*/
private String agree;
/**
* 客户名称
*/
private String custName;
@ApiModelProperty("处置合同号")
private String disposalContractNo;
/**
* 贷款合同号
*/
private String loanContractNo;
/**
* 转租方案说明
* 备注
*/
private String plan;
private String remarks;
@ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)")
private String disposal;
@ApiModelProperty("处置方式key")
private String disposalKey;
/**
* 车辆列表
*/
private List<AppOutboundVinListVo> vinList = new ArrayList<>();
@ApiModelProperty("新车主名称")
private String vinOwner;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty("联系电话")
private String phoneNum;
@ApiModelProperty("证件地址")
private String cardAddress;
@ApiModelProperty("有效期")
private String endDate;
@ApiModelProperty("证件号码")
private String idNumber;
@ApiModelProperty("证件类型(个人为身份证/企业为营业执照)")
private String certificateType;
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundapply/app/AppOutboundVinListVo.java

@ -25,4 +25,8 @@ public class AppOutboundVinListVo {
* 车架号
*/
private String vinNo;
/**
* 存放地点
*/
private String location;
}

7
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoutboundveh/LoanOutboundVeh.java

@ -11,8 +11,8 @@ import lombok.Data;
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "车辆二次转租车辆列表", description = "车辆二次转租车辆列表")
@TableName("loan_sublet_veh")
@ApiModel(value = "交回车辆出库车辆列表", description = "交回车辆出库车辆列表")
@TableName("loan_out_bound_veh")
@Data
public class LoanOutboundVeh extends BaseEntity {
private static final long serialVersionUID = 1L;
@ -33,5 +33,6 @@ public class LoanOutboundVeh extends BaseEntity {
private String vehModel;
@ApiModelProperty("交回车辆台账sid")
private String ledgerSid;
@ApiModelProperty("存放地点")
private String location;
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApply;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionInitVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList;
import com.yxt.anrui.riskcenter.api.loansubletapply.*;
@ -17,7 +18,7 @@ import java.util.Map;
@Mapper
public interface LoanOutboundApplyMapper extends BaseMapper<LoanOutboundApply> {
IPage<LoanSubletApplyVo> listPage(IPage<LoanSubletApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanSubletApply> qw);
IPage<LoanOutboundApplyVo> listPage(IPage<LoanOutboundApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanOutboundApply> qw);
IPage<SubletVinListVo> getVinList(IPage<SubletVinListVo> page, @Param(Constants.WRAPPER) QueryWrapper<SubletVinListQuery> qw);
@ -33,11 +34,13 @@ public interface LoanOutboundApplyMapper extends BaseMapper<LoanOutboundApply> {
SubletVinList selReturnVinLegerBySid(@Param("ledgerSid") String ledgerSid);
SubletVinList selReturnTrVinLegerByPSid(@Param("ledgerSid")String ledgerSid);
SubletVinList selReturnTrVinLegerByPSid(@Param("ledgerSid") String ledgerSid);
SubletInitVo selLoanInfoByTrVeh(@Param("ledgerSid")String ledgerSid);
SubletInitVo selLoanInfoByTrVeh(@Param("ledgerSid") String ledgerSid);
SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid")String ledgerSid);
SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid") String ledgerSid);
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
int updateLedgerStockStateBySid(@Param("key") String key, @Param("value") String value, @Param("date") String date, @Param("ledgerSid") String ledgerSid);
}

27
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyMapper.xml

@ -16,8 +16,15 @@
</if>
WHERE sid = #{sid}
</update>
<update id="updateLedgerStockStateBySid">
UPDATE loan_return_veh_ledger
SET stockStateKey=#{key},
stockState=#{value},
outboundDate =#{date}
WHERE sid = #{ledgerSid}
</update>
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyVo">
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyVo">
SELECT
*
FROM
@ -26,9 +33,8 @@
sa.sid,
sa.isDelete,
sa.nodeState,
sa.agree,
sa.useOrgSid,
sa.createBySid,
sa.applyUserSid,
sa.orgSidPath,
sa.useOrgName AS company,
sa.dept,
@ -43,13 +49,18 @@
sa.borrowerName,
sa.customer,
sa.amount,
( SELECT count(*) FROM loan_sublet_veh h WHERE mainSid = sa.sid ) AS `count`,
v.vehType,
sa.newCustomer,
sa.phoneNum,
sa.disposal,
sa.disposalKey,
date_format( sa.outboundDate, '%Y-%m-%d' ) AS outboundDate,
( SELECT count(*) FROM loan_out_bound_veh h WHERE mainSid = sa.sid ) AS `count`,
v.vinNo,
v.vehMark
v.vehMark,
v.vehType
FROM
loan_sublet_apply AS sa
LEFT JOIN loan_sublet_veh AS v ON sa.sid = v.mainSid
loan_out_bound_apply AS sa
LEFT JOIN loan_out_bound_veh AS v ON sa.sid = v.mainSid
) a
<where>
${ew.sqlSegment}

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

File diff suppressed because it is too large

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.java

@ -1,6 +1,7 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundveh;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinList;
import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh;
@ -15,5 +16,5 @@ public interface LoanOutboundVehMapper extends BaseMapper<LoanOutboundVeh> {
int deleteByMainSid(@Param("mainSid") String mainSid);
List<SubletVinList> selByMainSid(@Param("mainSid") String mainSid);
List<OutboundVinList> selByMainSid(@Param("mainSid") String mainSid);
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehMapper.xml

@ -8,15 +8,9 @@
WHERE mainSid = #{mainSid}
</delete>
<select id="selByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList">
select vinSid,
vinNo,
vehMark,
vehModel,
busVinSid,
vehType,
ledgerSid
FROM loan_sublet_veh
resultType="com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinList">
select *
FROM loan_out_bound_veh
WHERE mainSid = #{mainSid}
</select>
</mapper>

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundveh/LoanOutboundVehService.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.biz.loanoutboundveh;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinList;
import com.yxt.anrui.riskcenter.api.loanoutboundveh.LoanOutboundVeh;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh;
@ -21,7 +22,7 @@ public class LoanOutboundVehService extends MybatisBaseService<LoanOutboundVehMa
}
public List<SubletVinList> selByMainSid(String sid) {
public List<OutboundVinList> selByMainSid(String sid) {
return baseMapper.selByMainSid(sid);
}
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApply;
import com.yxt.anrui.riskcenter.api.loanbuckleapply.LoanBuckleApplyVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.*;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -32,4 +33,6 @@ public interface LoanRedemptionApplyMapper extends BaseMapper<LoanRedemptionAppl
int updateVehLedgerDisposal(@Param("sid") String sid, @Param("disposalKey") String disposalKey, @Param("disposal") String disposal);
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
LoanReturnVehLedger selVehLedgerBySid(@Param("ledgerSid") String ledgerSid);
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml

@ -110,4 +110,10 @@
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="selVehLedgerBySid"
resultType="com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger">
SELECT *
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
</mapper>

63
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java

@ -13,6 +13,8 @@ import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
@ -38,6 +40,8 @@ import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanbuckleapplyrecord.LoanBuckleApplyRecord;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyDto;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinListDto;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.*;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppVinListVo;
@ -47,10 +51,12 @@ import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryRecordVo;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansubletapply.SubletVinList;
import com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal;
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanoutboundapply.LoanOutboundApplyService;
import com.yxt.anrui.riskcenter.biz.loanredemptionveh.LoanRedemptionVehService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
@ -120,6 +126,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
private LoanRestoreReportApplyService loanRestoreReportApplyService;
@Autowired
private LoanRedemptionVehService loanRedemptionVehService;
@Autowired
private LoanOutboundApplyService loanOutboundApplyService;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
public PagerVo<LoanRedemptionApplyVo> listPage(PagerQuery<LoanRedemptionApplyQuery> pq) {
IPage<LoanRedemptionApply> page = PagerUtil.queryToPage(pq);
@ -784,7 +794,18 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
LoanRedemptionApply redemptionApply = fetchBySid(businessSid);
redemptionApply.setClosingDate(new DateTime());
baseMapper.updateById(redemptionApply);
//todo 修改交车车辆台账状态
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
pushVehOutBound(redemptionApply);
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
loanRedemptionApply = fetchBySid(businessSid);
@ -807,6 +828,42 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
}
}
public void pushVehOutBound(LoanRedemptionApply loanRedemptionApply) {
LoanOutboundApplyDto dto = new LoanOutboundApplyDto();
List<OutboundVinListDto> vinList = new ArrayList<>();
BeanUtil.copyProperties(loanRedemptionApply, dto);
dto.setApplySid(loanRedemptionApply.getSid());
dto.setDisposalKey("02");
dto.setDisposal("客户赎回");
if (StringUtils.isNotBlank(loanRedemptionApply.getCustomerSid())) {
dto.setNewCustomerSid(loanRedemptionApply.getCustomerSid());
CrmCustomerTempVo customerTempVo = crmCustomerTempFeign.fetchSid(loanRedemptionApply.getCustomerSid()).getData();
if (null != customerTempVo) {
if (StringUtils.isNotBlank(customerTempVo.getMobile())) {
dto.setPhoneNum(customerTempVo.getMobile());
}
}
}
if (StringUtils.isNotBlank(loanRedemptionApply.getCustomer())) {
dto.setNewCustomer(loanRedemptionApply.getCustomer());
}
List<RedemptionVinList> vinLists = loanRedemptionVehService.selByMainSid(loanRedemptionApply.getSid());
if (!vinLists.isEmpty()) {
vinLists.forEach(v -> {
OutboundVinListDto outboundVinListDto = new OutboundVinListDto();
BeanUtil.copyProperties(v, outboundVinListDto);
LoanReturnVehLedger loanReturnVehLedger = baseMapper.selVehLedgerBySid(v.getLedgerSid());
if (null != loanReturnVehLedger) {
if (StringUtils.isNotBlank(loanReturnVehLedger.getLocation())) {
outboundVinListDto.setLocation(loanReturnVehLedger.getLocation());
}
}
vinList.add(outboundVinListDto);
});
}
dto.setVinList(vinList);
loanOutboundApplyService.saveOutbound(dto);
}
public ResultBean revokeProcess(RedemptionTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
@ -953,7 +1010,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
//终止任务后操作
LoanRedemptionApply entity = fetchBySid(query.getBusinessSid());
if (entity.getNodeState().equals("终止")) {
// todo 修改交回车辆状态
// 修改交回车辆状态
List<RedemptionVinList> vinLists = loanRedemptionVehService.selByMainSid(query.getBusinessSid());
if (!vinLists.isEmpty()) {
vinLists.stream().forEach(v -> {
@ -975,7 +1032,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
//终止任务后操作
LoanRedemptionApply entity = fetchBySid(query.getBusinessSid());
if (entity.getNodeState().equals("终止")) {
// todo 修改交回车辆状态
// 修改交回车辆状态
List<RedemptionVinList> vinLists = loanRedemptionVehService.selByMainSid(query.getBusinessSid());
if (!vinLists.isEmpty()) {
vinLists.stream().forEach(v -> {

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.*;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansubletapply.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -41,4 +42,6 @@ public interface LoanSubletApplyMapper extends BaseMapper<LoanSubletApply> {
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
List<CustomerListVo> pickCustomer(@Param("userOrgSid") String userOrgSid);
LoanReturnVehLedger selVehLedgerBySid(@Param("ledgerSid") String ledgerSid);
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml

@ -199,4 +199,10 @@
FROM anrui_crm.crm_customer_temp
WHERE createOrgSid = #{userOrgSid}
</select>
<select id="selVehLedgerBySid"
resultType="com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger">
SELECT *
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
</mapper>

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

@ -10,6 +10,9 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -29,12 +32,10 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFile;
import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyDto;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.OutboundVinListDto;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.*;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppRedemptionDetailsVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.app.AppVinListVo;
import com.yxt.anrui.riskcenter.api.loanredemptionapply.flow.*;
import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVeh;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.api.loansubletapply.*;
import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo;
import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletVinListVo;
@ -42,11 +43,10 @@ import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*;
import com.yxt.anrui.riskcenter.api.loansubletveh.LoanSubletVeh;
import com.yxt.anrui.riskcenter.biz.loanbuckleapplyrecord.LoanBuckleApplyRecordService;
import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService;
import com.yxt.anrui.riskcenter.biz.loanoutboundapply.LoanOutboundApplyService;
import com.yxt.anrui.riskcenter.biz.loanredemptionapply.LoanRedemptionApplyService;
import com.yxt.anrui.riskcenter.biz.loanredemptionveh.LoanRedemptionVehService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService;
import com.yxt.anrui.riskcenter.biz.loansubletveh.LoanSubletVehService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -80,14 +80,10 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private LoanRepaymentHistoryService loanRepaymentHistoryService;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private LoanBuckleApplyRecordService loanBuckleApplyRecordService;
@Autowired
private LoanFileService loanFileService;
@Autowired
private FileUploadComponent fileUploadComponent;
@ -98,21 +94,13 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanRedemptionApplyService loanRedemptionApplyService;
@Autowired
private LoanSubletVehService loanSubletVehService;
@Autowired
private LoanOutboundApplyService loanOutboundApplyService;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
public PagerVo<LoanSubletApplyVo> listPage(PagerQuery<LoanSubletApplyQuery> pq) {
IPage<LoanSubletApply> page = PagerUtil.queryToPage(pq);
@ -692,7 +680,24 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
LoanSubletApply subletApply = fetchBySid(businessSid);
subletApply.setClosingDate(new DateTime());
baseMapper.updateById(subletApply);
//todo 修改交车车辆台账状态
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
//推送交回车辆出库
Future future1 = pool.submit(() -> {
pushVehOutBound(subletApply);
});
//维护客户信息
Future future2 = pool.submit(() -> {
updateCustomer(subletApply);
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
loanSubletApply = fetchBySid(businessSid);
@ -715,6 +720,47 @@ public class LoanSubletApplyService extends MybatisBaseService<LoanSubletApplyMa
}
}
private void updateCustomer(LoanSubletApply subletApply) {
if (StringUtils.isNotBlank(subletApply.getNewCustomerSid())) {
String newCustomerSid = subletApply.getNewCustomerSid();
CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(newCustomerSid).getData();
if (null != customerTemp) {
if (StringUtils.isNotBlank(subletApply.getIdNumber())) {
customerTemp.setIDNumber(subletApply.getIdNumber());
}
if (StringUtils.isNotBlank(subletApply.getEndDate())) {
customerTemp.setEndDate(subletApply.getEndDate());
}
crmCustomerTempFeign.updateByEntity(customerTemp);
}
}
}
private void pushVehOutBound(LoanSubletApply subletApply) {
LoanOutboundApplyDto dto = new LoanOutboundApplyDto();
List<OutboundVinListDto> vinList = new ArrayList<>();
BeanUtil.copyProperties(subletApply, dto);
dto.setApplySid(subletApply.getSid());
dto.setDisposalKey("04");
dto.setDisposal("二次转租");
List<SubletVinList> vinLists = loanSubletVehService.selByMainSid(subletApply.getSid());
if (!vinLists.isEmpty()) {
vinLists.forEach(v -> {
OutboundVinListDto outboundVinListDto = new OutboundVinListDto();
BeanUtil.copyProperties(v, outboundVinListDto);
LoanReturnVehLedger loanReturnVehLedger = baseMapper.selVehLedgerBySid(v.getLedgerSid());
if (null != loanReturnVehLedger) {
if (StringUtils.isNotBlank(loanReturnVehLedger.getLocation())) {
outboundVinListDto.setLocation(loanReturnVehLedger.getLocation());
}
}
vinList.add(outboundVinListDto);
});
}
dto.setVinList(vinList);
loanOutboundApplyService.saveOutbound(dto);
}
/**
* 撤回
*

32
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/AppOutBoundVehApplyVinList.java

@ -0,0 +1,32 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/11/13 15:45
*/
@Data
public class AppOutBoundVehApplyVinList {
/**
* 车型
*/
private String model;
/**
* 车牌号
*/
private String vehMark;
/**
* 车辆类型
*/
private String vehType;
/**
* 车架号
*/
private String vinNo;
/**
* 存放地点
*/
private String location;
}

52
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/OutBoundVehApplyDetailsVo.java

@ -0,0 +1,52 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/11/13 15:38
*/
@Data
public class OutBoundVehApplyDetailsVo implements Vo {
private String sid;
private String publishInfo;
private String time; //申请日期
private List<String> buyFiles = new ArrayList<>(); //车辆买卖协议
private List<String> deliveryFiles = new ArrayList<>(); //车辆交付确认书
private List<String> assessFiles = new ArrayList<>(); //车辆完整评估照片
private List<String> otherFiles = new ArrayList<>(); //其他附件
private String taskId;
private String procInsId;
private String applySid; //处置申请sid
/**
* 出库金额
*/
private String amount;
/**
* 客户名称
*/
private String custName;
@ApiModelProperty("处置合同号")
private String disposalContractNo;
/**
* 备注
*/
private String remarks;
@ApiModelProperty("处置方式(未处置/客户赎回/二次销售/二次转租)")
private String disposal;
@ApiModelProperty("处置方式key")
private String disposalKey;
/**
* 车辆列表
*/
private List<AppOutBoundVehApplyVinList> vinList = new ArrayList<>();
@ApiModelProperty("联系电话")
private String phoneNum;
}

67
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/OutBoundVehApplyFeign.java

@ -0,0 +1,67 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyDelegateQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.CompleteOutBoundVehApplyDto;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.OutBoundVehApplyFlowableQuery;
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.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @description:
* @author: fzz
* @date: 2023/8/8
**/
@Api(tags = "交回车辆出库申请")
@FeignClient(
contextId = "terminal-OutBoundVeh",
name = "anrui-terminal",
path = "/riskcenter/v1/outboundveh",
fallback = OutBoundVehApplyFeignFallback.class)
public interface OutBoundVehApplyFeign {
@ApiOperation("详情")
@GetMapping("/appDetail/{sid}")
@ResponseBody
ResultBean<OutBoundVehApplyDetailsVo> detail(@PathVariable("sid") String sid);
//-------------------------流程-----------------------------------------
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@Valid @RequestBody CompleteOutBoundVehApplyDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@Valid @RequestBody AppOutBoundVehApplyTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@Valid @RequestBody AppOutBoundVehApplyTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@Valid @RequestBody AppOutBoundVehApplyTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap OutBoundVehApplyFlowableQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppOutBoundVehApplyDelegateQuery delegateQuery);
}

52
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/OutBoundVehApplyFeignFallback.java

@ -0,0 +1,52 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyDelegateQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.CompleteOutBoundVehApplyDto;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.OutBoundVehApplyFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: fzz
* @date:
**/
@Component
public class OutBoundVehApplyFeignFallback implements OutBoundVehApplyFeign {
@Override
public ResultBean<OutBoundVehApplyDetailsVo> detail(String sid) {
return null;
}
@Override
public ResultBean agreeCreditInfo(CompleteOutBoundVehApplyDto dto) {
return null;
}
@Override
public ResultBean rejectCreditInfo(AppOutBoundVehApplyTaskQuery query) {
return null;
}
@Override
public ResultBean recallCreditInfo(AppOutBoundVehApplyTaskQuery query) {
return null;
}
@Override
public ResultBean stopCreditInfo(AppOutBoundVehApplyTaskQuery query) {
return null;
}
@Override
public ResultBean<String> getFlowOperateTitle(OutBoundVehApplyFlowableQuery query) {
return null;
}
@Override
public ResultBean delegate(AppOutBoundVehApplyDelegateQuery delegateQuery) {
return null;
}
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/AppOutBoundVehApplyDelegateQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 10:16
*/
@Data
public class AppOutBoundVehApplyDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/AppOutBoundVehApplyTaskQuery.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh.flow;
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;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:14
*/
@Data
public class AppOutBoundVehApplyTaskQuery implements Query {
/**
* 终止驳回撤回
*/
@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;
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/CompleteOutBoundVehApplyDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh.flow;
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;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:13
*/
@Data
public class CompleteOutBoundVehApplyDto implements Dto {
@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;
}

21
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/outBoundVeh/flow/OutBoundVehApplyFlowableQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.terminal.api.risk.outBoundVeh.flow;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class OutBoundVehApplyFlowableQuery implements Query {
private static final long serialVersionUID = -5879668616710833830L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

68
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/outBoundVeh/OutBoundVehApplyRest.java

@ -0,0 +1,68 @@
package com.yxt.anrui.terminal.biz.risk.outBoundVeh;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.OutBoundVehApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.OutBoundVehApplyFeign;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyDelegateQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.CompleteOutBoundVehApplyDto;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.OutBoundVehApplyFlowableQuery;
import com.yxt.anrui.terminal.api.risk.subletApply.SubletApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.subletApply.SubletApplyFeign;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.AppSubletApplyDelegateQuery;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.AppSubletApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.CompleteSubletApplyDto;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.SubletApplyFlowableQuery;
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: fzz
* @date:
**/
@Controller
@RequestMapping("/riskcenter/v1/outboundveh")
public class OutBoundVehApplyRest implements OutBoundVehApplyFeign {
@Autowired
private OutBoundVehApplyService outBoundVehApplyService;
@Override
public ResultBean<OutBoundVehApplyDetailsVo> detail(String sid) {
return outBoundVehApplyService.detail(sid);
}
@Override
public ResultBean agreeCreditInfo(CompleteOutBoundVehApplyDto dto) {
return outBoundVehApplyService.agreeCreditInfo(dto);
}
@Override
public ResultBean rejectCreditInfo(AppOutBoundVehApplyTaskQuery query) {
return outBoundVehApplyService.rejectCreditInfo(query);
}
@Override
public ResultBean recallCreditInfo(AppOutBoundVehApplyTaskQuery query) {
return outBoundVehApplyService.recallCreditInfo(query);
}
@Override
public ResultBean stopCreditInfo(AppOutBoundVehApplyTaskQuery query) {
return outBoundVehApplyService.stopCreditInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(OutBoundVehApplyFlowableQuery query) {
return outBoundVehApplyService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppOutBoundVehApplyDelegateQuery delegateQuery) {
return outBoundVehApplyService.delegate(delegateQuery);
}
}

157
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/outBoundVeh/OutBoundVehApplyService.java

@ -0,0 +1,157 @@
package com.yxt.anrui.terminal.biz.risk.outBoundVeh;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApplyFeign;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.app.AppOutboundDetailsVo;
import com.yxt.anrui.riskcenter.api.loanoutboundapply.flow.*;
import com.yxt.anrui.riskcenter.api.loansubletapply.LoanSubletApplyFeign;
import com.yxt.anrui.riskcenter.api.loansubletapply.app.AppSubletDetailsVo;
import com.yxt.anrui.riskcenter.api.loansubletapply.flow.*;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.OutBoundVehApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyDelegateQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.AppOutBoundVehApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.CompleteOutBoundVehApplyDto;
import com.yxt.anrui.terminal.api.risk.outBoundVeh.flow.OutBoundVehApplyFlowableQuery;
import com.yxt.anrui.terminal.api.risk.subletApply.SubletApplyDetailsVo;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.AppSubletApplyDelegateQuery;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.AppSubletApplyTaskQuery;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.CompleteSubletApplyDto;
import com.yxt.anrui.terminal.api.risk.subletApply.flow.SubletApplyFlowableQuery;
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: fzz
* @date:
**/
@Service
public class OutBoundVehApplyService {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private LoanOutboundApplyFeign loanOutboundApplyFeign;
public ResultBean<OutBoundVehApplyDetailsVo> detail(String sid) {
ResultBean<OutBoundVehApplyDetailsVo> rb = ResultBean.fireFail();
OutBoundVehApplyDetailsVo vo = new OutBoundVehApplyDetailsVo();
AppOutboundDetailsVo data = loanOutboundApplyFeign.appDetail(sid).getData();
if (null != data) {
BeanUtil.copyProperties(data, vo);
}
return rb.success().setData(vo);
}
public ResultBean agreeCreditInfo(CompleteOutBoundVehApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
OutboundCompleteDto completeDto = new
OutboundCompleteDto();
BeanUtil.copyProperties(dto, completeDto);
completeDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = loanOutboundApplyFeign.complete(completeDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectCreditInfo(AppOutBoundVehApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
OutboundTaskQuery taskQuery = new
OutboundTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanOutboundApplyFeign.taskReject(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCreditInfo(AppOutBoundVehApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
OutboundTaskQuery taskQuery = new
OutboundTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanOutboundApplyFeign.revokeProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCreditInfo(AppOutBoundVehApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
OutboundTaskQuery taskQuery = new
OutboundTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanOutboundApplyFeign.breakProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(OutBoundVehApplyFlowableQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
OutboundGetNodeQuery getNodeQuery = new
OutboundGetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<OutboundGetNodeVo>> getPreviousNodesForReject = loanOutboundApplyFeign.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<OutboundGetNodeVo>> getNextNodesForSubmit = loanOutboundApplyFeign.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);
}
public ResultBean delegate(AppOutBoundVehApplyDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
OutboundDelegateQuery delegateQuery1 = new
OutboundDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanOutboundApplyFeign.delegate(delegateQuery1);
return rb.success();
}
}
Loading…
Cancel
Save