Browse Source

交回车辆二次转租模块流程接口开发

master
fanzongzhe 1 year ago
parent
commit
f913c51f89
  1. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java
  2. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java
  3. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java
  4. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/VehDisposal.java
  5. 65
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/app/AppSubletDetailsVo.java
  6. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java
  7. 16
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.xml
  8. 83
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java
  9. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.java
  10. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyMapper.xml
  11. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java
  12. 1074
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyService.java
  13. 65
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/subletApply/SubletApplyDetailsVo.java

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApply.java

@ -60,8 +60,8 @@ public class LoanSubletApply extends BaseEntity {
private BigDecimal amount;
@ApiModelProperty("转租方案说明")
private String plan;
@ApiModelProperty("0是1否")
private Integer agree;
@ApiModelProperty("原车主是否同意")
private String agree;
@ApiModelProperty("新车主名称")
private String vinOwner;
@ApiModelProperty("客户类型key")

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyDto.java

@ -37,7 +37,7 @@ public class LoanSubletApplyDto implements Dto {
private String amount;
@ApiModelProperty("转租方案说明")
private String plan;
@ApiModelProperty("0是1否")
@ApiModelProperty("原车主是否同意")
private String agree;
@ApiModelProperty("新车主名称")
private String vinOwner;

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/LoanSubletApplyInit.java

@ -41,7 +41,7 @@ public class LoanSubletApplyInit implements Vo {
private String amount;
@ApiModelProperty("转租方案说明")
private String plan;
@ApiModelProperty("0是1否")
@ApiModelProperty("原车主是否同意")
private String agree;
@ApiModelProperty("新车主名称")
private String vinOwner;

15
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/VehDisposal.java

@ -0,0 +1,15 @@
package com.yxt.anrui.riskcenter.api.loansubletapply;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/1/18 11:32
*/
@Data
public class VehDisposal {
private String sid;
private String disposalKey;
private String disposal;
}

65
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansubletapply/app/AppSubletDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loansubletapply.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
@ -14,20 +15,12 @@ import java.util.List;
public class AppSubletDetailsVo {
private String sid;
private String publishInfo;
private String time;
private String time; //申请日期
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
/**
* 已还金额
*/
private String alRepaidMoney;
/**
* 已还金额换算期数
*/
private String alRepaidMoneyConPeriod;
/**
* 本次还款金额
* 本次转租金额
*/
private String amount;
/**
@ -38,60 +31,42 @@ public class AppSubletDetailsVo {
* 资方
*/
private String bankName;
/**
* 逾期金额换算期数
*/
private String beOverdueMoneyAndPeriod;
/**
* 贷款人
*/
private String borrName;
/**
* 催收记录
* 原车主是否同意 0是 1否
*/
private String csjlSid;
private String agree;
/**
* 客户名称
*/
private String custName;
/**
* 相关费用
*/
private String fees;
/**
* 费用说明
*/
private String feesShows;
/**
* 贷款合同号
*/
private String loanContractNo;
/**
* 停放地点
*/
private String location;
/**
* 赎回方案
* 转租方案说明
*/
private String plan;
/**
* 总期数/当前期数
*/
private String qsCount;
/**
* 入库申请
*/
private String rksqSid;
/**
* 未到期金额
*/
private String unexpiredMoney;
/**
* 车辆列表
*/
private List<AppSubletVinListVo> vinList = new ArrayList<>();
/**
* 当前逾期金额/其中资金占用费
*/
private String yqzjzyMoney;
@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;
}

7
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.loansubletapply.VehDisposal;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -18,7 +19,7 @@ public interface LoanRedemptionApplyMapper extends BaseMapper<LoanRedemptionAppl
IPage<LoanRedemptionApplyVo> listPage(IPage<LoanRedemptionApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRedemptionApply> qw);
IPage<VinListVo> getVinList(IPage<VinListVo> page,@Param(Constants.WRAPPER) QueryWrapper<VinListQuery> qw);
IPage<VinListVo> getVinList(IPage<VinListVo> page, @Param(Constants.WRAPPER) QueryWrapper<VinListQuery> qw);
RedemptionInitVo redemptionInit(@Param("ledgerSid") String ledgerSid);
@ -27,4 +28,8 @@ public interface LoanRedemptionApplyMapper extends BaseMapper<LoanRedemptionAppl
int updateFlowFiled(Map<String, Object> map);
String selTrailerByMainLedgerSid(@Param("ledgerSid") String ledgerSid);
int updateVehLedgerDisposal(@Param("sid") String sid, @Param("disposalKey") String disposalKey, @Param("disposal") String disposal);
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
}

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

@ -16,6 +16,12 @@
</if>
WHERE sid = #{sid}
</update>
<update id="updateVehLedgerDisposal">
update loan_return_veh_ledger
set disposal = #{disposal},
disposalKey = #{disposalKey}
WHERE sid = #{sid}
</update>
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyVo">
SELECT
@ -85,7 +91,8 @@
vinNo,
vehMark,
vehType,
vehModel
vehModel,
sid as ledgerSid
FROM loan_return_veh_ledger as t
WHERE t.pSid = #{ledgerSid}
</select>
@ -94,4 +101,11 @@
FROM loan_return_veh_ledger as t
WHERE t.pSid = #{ledgerSid}
</select>
<select id="selVehDisposal" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal">
SELECT sid,
disposalKey,
disposal
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
</mapper>

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

@ -47,6 +47,8 @@ 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.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.loanredemptionveh.LoanRedemptionVehService;
@ -242,7 +244,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
qw.orderByDesc("v.createTime");
qw.eq("v.stockState", "库存");
qw.eq("v.disposal", "未处置");
qw.eq("v.vehType","主车");
qw.eq("v.vehType", "主车");
IPage<VinListVo> pagging = baseMapper.getVinList(page, qw);
PagerVo<VinListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
@ -308,6 +310,7 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
if (StringUtils.isNotBlank(redemptionInitVo.getVehType())) {
mainVeh.setVehType(redemptionInitVo.getVehType());
}
mainVeh.setLedgerSid(ledgerSid);
vinList.add(mainVeh);
if (StringUtils.isNotBlank(redemptionInitVo.getLedgerSid())) {
RedemptionVinList trailerVeh = baseMapper.selTrailerByLedgerSid(redemptionInitVo.getLedgerSid());
@ -427,7 +430,6 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
}
}
loanRedemptionVehService.insert(redemptionVeh);
//todo 交回车辆状态处置状态修改
}
}
//删除附件表中关于该linkSid的文件
@ -444,6 +446,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
return rb.success().setData(sid);
}
public int updateVehLedgerDisposal(String sid, String disposalKey, String disposal) {
return baseMapper.updateVehLedgerDisposal(sid, disposalKey, disposal);
}
public ResultBean<LoanRedemptionApplyInit> redemptionDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanRedemptionApplyInit vo = new LoanRedemptionApplyInit();
@ -542,7 +548,6 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
if (i == 0) {
return rb.setMsg("删除失败");
}
//todo 修改交回车辆台账状态
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
@ -597,6 +602,17 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
List<RedemptionVinList> dtoVinList = dto.getVinList();
if (!dtoVinList.isEmpty()) {
for (RedemptionVinList v : dtoVinList) {
VehDisposal vehDisposal = baseMapper.selVehDisposal(v.getLedgerSid());
if (null != vehDisposal) {
if (!vehDisposal.getDisposal().equals("未处置")) {
return rb.setMsg("当前所选车辆不是未处置状态,无法提交!");
}
}
}
}
String businessSid = "";
//新增修改保存
ResultBean<String> resultBean = saveRedemption(dto);
@ -605,6 +621,13 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
} else {
return rb.setMsg(resultBean.getMsg());
}
//提交之后修改车辆台账
List<RedemptionVinList> vinLists1 = loanRedemptionVehService.selByMainSid(businessSid);
if (!vinLists1.isEmpty()) {
vinLists1.stream().forEach(v -> {
updateVehLedgerDisposal(v.getLedgerSid(), "02", "客户赎回");
});
}
LoanRedemptionApply entity = fetchBySid(businessSid);
String orgSidPath = "";
if (StringUtils.isNotBlank(entity.getOrgSidPath())) {
@ -756,11 +779,27 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
return rb.setMsg(resultBean.getMsg());
}
int i = updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
UpdateFlowFieldVo ufVo = resultBean.getData();
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
LoanRedemptionApply redemptionApply = fetchBySid(businessSid);
redemptionApply.setClosingDate(new DateTime());
baseMapper.updateById(redemptionApply);
//todo 修改交车车辆台账状态
} else {
//极光推送
loanRedemptionApply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(loanRedemptionApply.getProcDefId());
messageFlowVo.setProcInsId(loanRedemptionApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("交回车辆赎回申请");
messageFlowableQuery.setMsgContent(loanRedemptionApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("交回车辆赎回申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
@ -785,6 +824,21 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
loanRedemptionApply = fetchBySid(query.getBusinessSid());
String procId = loanRedemptionApply.getProcInstId();
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
String nextName = listResultBean.getData().get(0).getName_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if ("发起申请".equals(nextName)) {
//退回车辆处置状态
List<RedemptionVinList> vinLists1 = loanRedemptionVehService.selByMainSid(query.getBusinessSid());
if (!vinLists1.isEmpty()) {
vinLists1.stream().forEach(v -> {
updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
});
}
}
return rb.success().setData(resultBean.getData());
}
}
@ -850,6 +904,13 @@ public class LoanRedemptionApplyService extends MybatisBaseService<LoanRedemptio
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
//退回车辆处置状态
List<RedemptionVinList> vinLists1 = loanRedemptionVehService.selByMainSid(query.getBusinessSid());
if (!vinLists1.isEmpty()) {
vinLists1.stream().forEach(v -> {
updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
});
}
} else {
SysUserVo userVo = sysUserFeign.fetchBySid(loanRedemptionApply.getCreateBySid()).getData();
if (userVo != null) {
@ -892,9 +953,13 @@ 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 -> {
updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
});
}
}
return rb.success().setData(resultBean.getData());
} else {
@ -910,9 +975,13 @@ 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 -> {
updateVehLedgerDisposal(v.getLedgerSid(), "01", "未处置");
});
}
}
return rb.success().setData(resultBean.getData());
}

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

@ -36,4 +36,6 @@ public interface LoanSubletApplyMapper extends BaseMapper<LoanSubletApply> {
SubletInitVo selLoanInfoByTrVeh(@Param("ledgerSid")String ledgerSid);
SubletVinList selReturnTrVinLegerBySid(@Param("ledgerSid")String ledgerSid);
VehDisposal selVehDisposal(@Param("ledgerSid") String ledgerSid);
}

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

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loansubletapply.LoanSubletApplyMapper">
<update id="updateFlowFiled">
UPDATE loan_redemption_apply
UPDATE loan_sublet_apply
SET nodeState=#{nodeState}
, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
@ -177,4 +177,11 @@
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
<select id="selVehDisposal" resultType="com.yxt.anrui.riskcenter.api.loansubletapply.VehDisposal">
SELECT sid,
disposalKey,
disposal
FROM loan_return_veh_ledger
WHERE sid = #{ledgerSid}
</select>
</mapper>

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansubletapply/LoanSubletApplyRest.java

@ -71,7 +71,7 @@ public class LoanSubletApplyRest implements LoanSubletApplyFeign {
public ResultBean complete(SubletCompleteDto dto) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(dto, bv);
bv.setModelId(ProcDefEnum.LOANREDEMPTIONAPPLY.getProDefId());
bv.setModelId(ProcDefEnum.LOANSUBLETAPPLY.getProDefId());
return loanSubletApplyService.complete(bv);
}

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

File diff suppressed because it is too large

65
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/subletApply/SubletApplyDetailsVo.java

@ -1,6 +1,7 @@
package com.yxt.anrui.terminal.api.risk.subletApply;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
@ -15,20 +16,12 @@ import java.util.List;
public class SubletApplyDetailsVo implements Vo {
private String sid;
private String publishInfo;
private String time;
private String time; //申请日期
private List<String> files = new ArrayList<>();
private String taskId;
private String procInsId;
/**
* 已还金额
*/
private String alRepaidMoney;
/**
* 已还金额换算期数
*/
private String alRepaidMoneyConPeriod;
/**
* 本次还款金额
* 本次转租金额
*/
private String amount;
/**
@ -39,61 +32,43 @@ public class SubletApplyDetailsVo implements Vo {
* 资方
*/
private String bankName;
/**
* 逾期金额换算期数
*/
private String beOverdueMoneyAndPeriod;
/**
* 贷款人
*/
private String borrName;
/**
* 催收记录
* 原车主是否同意
*/
private String csjlSid;
private String agree;
/**
* 客户名称
*/
private String custName;
/**
* 相关费用
*/
private String fees;
/**
* 费用说明
*/
private String feesShows;
/**
* 贷款合同号
*/
private String loanContractNo;
/**
* 停放地点
*/
private String location;
/**
* 赎回方案
* 转租方案说明
*/
private String plan;
/**
* 总期数/当前期数
*/
private String qsCount;
/**
* 入库申请
*/
private String rksqSid;
/**
* 未到期金额
*/
private String unexpiredMoney;
/**
* 车辆列表
*/
private List<AppSubletApplyVinList> vinList = new ArrayList<>();
/**
* 当前逾期金额/其中资金占用费
*/
private String yqzjzyMoney;
@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;
}

Loading…
Cancel
Save