diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java index 6c9d46c9f8..6341540dbc 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfile/LoanFileEnum.java @@ -40,6 +40,9 @@ public enum LoanFileEnum { DELIVERYFILES("026", "交回车辆出库车辆交付确认书"), ASSESSFILES("027", "交回车辆出库车辆完整评估照片"), OTHERFILES("028", "交回车辆出库其他附件"), + MORTGAGE_NOTICES("029", "解抵管理-解抵通知单"), + MORTGAGE_POROXY("030", "解抵管理-委托书"), + MORTGAGE_HANDOVER_INFO("031", "解抵管理-交接材料"), ; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageDetailsVo.java deleted file mode 100644 index 7b03067f7f..0000000000 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageDetailsVo.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.yxt.anrui.riskcenter.api.loanrelievemortgage; - -import com.yxt.common.core.vo.Vo; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * @author Administrator - * @description - * @date 2023/8/21 9:13 - */ -@Data -public class LoanRelieveMortgageDetailsVo implements Vo { - private String sid; - private String remarks; - private String userSid; - @ApiModelProperty("参数编码") - private String parameterNo; - @ApiModelProperty("参数名称") - private String parameterName; - @ApiModelProperty("参数值") - private String parameterValue; - @ApiModelProperty("使用组织全路径") - private String orgPath; -} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeign.java index 3a40cb6738..083c00c039 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeign.java @@ -35,24 +35,25 @@ public interface LoanRelieveMortgageFeign { @PostMapping("/saveRelieveMortgage") @ResponseBody public ResultBean saveRelieveMortgage(@RequestBody LoanRelieveMortgageSaveDto dto); -// -// @ApiOperation("批量删除") -// @DeleteMapping("/deleteBySids") -// @ResponseBody -// public ResultBean deleteBySids(@RequestBody String[] sids); -// -// @ApiOperation("根据SID获取一条记录") -// @GetMapping("/fetchDetailsBySid/{sid}") -// @ResponseBody -// public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); -// -// @ApiOperation("根据参数编码查询参数值") -// @PostMapping("/fetchByParNo") -// @ResponseBody -// ResultBean fetchByParNo(@RequestParam("parNo") String parNo); -// -// @ApiOperation("根据参数编码查询记录") -// @PostMapping("/fetchOneByParNo") -// @ResponseBody -// ResultBean fetchOneByParNo(@RequestParam("parNo") String parNo); + + @ApiOperation("办理初始化") + @GetMapping("/mortgageInit") + @ResponseBody + public ResultBean mortgageInit(@RequestParam("sid") String sid); + + @ApiOperation("办理操作") + @PostMapping("/mortgageHandle") + @ResponseBody + public ResultBean mortgageHandle(@RequestBody MortgageInitDto dto); + + @ApiOperation("移交初始化/详情") + @GetMapping("/transferInit") + @ResponseBody + public ResultBean transferInit(@RequestParam("sid") String sid); + + @ApiOperation("办理操作") + @PostMapping("/mortgageTransfer") + @ResponseBody + public ResultBean mortgageTransfer(@RequestBody LoanRelieveMortgageTransferDto dto); + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeignFallback.java index cf5495eb20..6d18f26328 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFeignFallback.java @@ -22,4 +22,24 @@ public class LoanRelieveMortgageFeignFallback implements LoanRelieveMortgageFeig public ResultBean saveRelieveMortgage(LoanRelieveMortgageSaveDto dto) { return null; } + + @Override + public ResultBean mortgageInit(String sid) { + return null; + } + + @Override + public ResultBean mortgageHandle(MortgageInitDto dto) { + return null; + } + + @Override + public ResultBean transferInit(String sid) { + return null; + } + + @Override + public ResultBean mortgageTransfer(LoanRelieveMortgageTransferDto dto) { + return null; + } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFile.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFile.java new file mode 100644 index 0000000000..229c33d61d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageFile.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.api.loanrelievemortgage; + +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/17 9:18 + */ +@Data +public class LoanRelieveMortgageFile { + private String filePath; + private String name; + private String size; + private String status; + private String uid; + private String url; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageTransferDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageTransferDto.java new file mode 100644 index 0000000000..f75ec5d177 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageTransferDto.java @@ -0,0 +1,38 @@ +package com.yxt.anrui.riskcenter.api.loanrelievemortgage; + +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 + * @date 2024/2/2 15:08 + */ +@Data +public class LoanRelieveMortgageTransferDto implements Dto { + + private String sid; +// private List notices = new ArrayList<>(); //解抵通知单 +// private List proxy = new ArrayList<>(); //委托书 + private List handoverFiles = new ArrayList<>(); //交接材料 +// private List confirmFiles = new ArrayList<>(); //接收确认文件 + @ApiModelProperty("移交日期") + private String transferDate; + @ApiModelProperty("快递单号") + private String trackingNo; + @ApiModelProperty("移交方式key") + private String transferWayKey; + @ApiModelProperty("移交方式value(001邮寄002自送)") + private String transferWayValue; + @ApiModelProperty("接收人/签收人") + private String recipient; + @ApiModelProperty("移交备注") + private String transferRemarks; + @ApiModelProperty("其他移交资料") + private String otherInformation; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageTransferVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageTransferVo.java new file mode 100644 index 0000000000..38aa1213b4 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/LoanRelieveMortgageTransferVo.java @@ -0,0 +1,55 @@ +package com.yxt.anrui.riskcenter.api.loanrelievemortgage; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/2/2 15:08 + */ +@Data +public class LoanRelieveMortgageTransferVo implements Vo { + + private String sid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("资方") + private String bankName; + private List notices = new ArrayList<>(); //解抵通知单 + private List proxy = new ArrayList<>(); //委托书 + private List handoverFiles = new ArrayList<>(); //交接材料 + private List confirmFiles = new ArrayList<>(); //接收确认文件 + @ApiModelProperty("移交日期") + private String transferDate; + @ApiModelProperty("快递单号") + private String trackingNo; + @ApiModelProperty("移交方式key") + private String transferWayKey; + @ApiModelProperty("移交方式value(001邮寄002自送)") + private String transferWayValue; + @ApiModelProperty("接收人/签收人") + private String recipient; + @ApiModelProperty("移交备注") + private String transferRemarks; + @ApiModelProperty("其他移交资料") + private String otherInformation; + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/MortgageInitDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/MortgageInitDto.java new file mode 100644 index 0000000000..f8e5f2e905 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/MortgageInitDto.java @@ -0,0 +1,40 @@ +package com.yxt.anrui.riskcenter.api.loanrelievemortgage; + +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 + * @date 2024/2/2 14:34 + */ +@Data +public class MortgageInitDto implements Dto { + + private String sid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("资方") + private String bankName; + private List notices = new ArrayList<>(); //解抵通知单 + private List proxy = new ArrayList<>(); //委托书 + private List confirmFiles = new ArrayList<>(); //接收确认文件 + private String remarks; //备注 + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/MortgageInitVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/MortgageInitVo.java new file mode 100644 index 0000000000..c8d2265e0f --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrelievemortgage/MortgageInitVo.java @@ -0,0 +1,42 @@ +package com.yxt.anrui.riskcenter.api.loanrelievemortgage; + +import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyFile; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/2/2 14:24 + */ +@Data +public class MortgageInitVo implements Vo { + + private String sid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("客户名称") + private String customer; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("消贷合同号") + private String loanContractNo; + @ApiModelProperty("资方合同号") + private String bankContractNo; + @ApiModelProperty("贷款人") + private String borrowerName; + @ApiModelProperty("资方") + private String bankName; + private List notices = new ArrayList<>(); //解抵通知单 + private List proxy = new ArrayList<>(); //委托书 + private List confirmFiles = new ArrayList<>(); //接收确认文件 + private String remarks; //备注 + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java index e5255431ea..e7a7e9fe4a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java @@ -225,7 +225,7 @@ public class LoanOutboundApplyService extends MybatisBaseService saveOutbound(LoanOutboundApplyDto dto) { ResultBean rb = ResultBean.fireFail(); LoanOutboundApply entity = new LoanOutboundApply(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageRest.java index fd52bccd28..37ad3ace0d 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageRest.java @@ -2,10 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loanrelievemortgage; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVehFeign; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageFeign; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageQuery; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageSaveDto; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageVo; +import com.yxt.anrui.riskcenter.api.loanrelievemortgage.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -34,4 +31,24 @@ public class LoanRelieveMortgageRest implements LoanRelieveMortgageFeign { public ResultBean saveRelieveMortgage(LoanRelieveMortgageSaveDto dto) { return loanRelieveMortgageService.saveRelieveMortgage(dto); } + + @Override + public ResultBean mortgageInit(String sid) { + return loanRelieveMortgageService.mortgageInit(sid); + } + + @Override + public ResultBean mortgageHandle(MortgageInitDto dto) { + return loanRelieveMortgageService.mortgageHandle(dto); + } + + @Override + public ResultBean transferInit(String sid) { + return loanRelieveMortgageService.transferInit(sid); + } + + @Override + public ResultBean mortgageTransfer(LoanRelieveMortgageTransferDto dto) { + return loanRelieveMortgageService.mortgageTransfer(dto); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageService.java index c63ef0d4a1..cb7f3692cb 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrelievemortgage/LoanRelieveMortgageService.java @@ -3,17 +3,19 @@ package com.yxt.anrui.riskcenter.biz.loanrelievemortgage; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basetrailer.BaseTrailer; +import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApply; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyQuery; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.LoanRedemptionApplyVo; -import com.yxt.anrui.riskcenter.api.loanredemptionapply.RedemptionVinList; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; +import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanredemptionapply.*; import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVeh; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgage; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageQuery; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageSaveDto; -import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageVo; +import com.yxt.anrui.riskcenter.api.loanrelievemortgage.*; +import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; @@ -22,8 +24,15 @@ import com.yxt.common.core.vo.PagerVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @description: @@ -35,6 +44,14 @@ public class LoanRelieveMortgageService extends MybatisBaseService p = PagerUtil.pageToVo(pagging, null); return p; } + + public ResultBean mortgageInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + MortgageInitVo vo = new MortgageInitVo(); + LoanRelieveMortgage entity = fetchBySid(sid); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + if (StringUtils.isNotBlank(entity.getReceiveFiles())) { + List stringList = Arrays.asList(entity.getReceiveFiles().split(",")); + vo.setConfirmFiles(stringList); + } + CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(entity.getCustomerSid()).getData(); + if (null != customerTemp) { + if (StringUtils.isNotBlank(customerTemp.getMobile())) { + vo.setMobile(customerTemp.getMobile()); + } + } + List trailers = baseTrailerFeign.getByVehSid(entity.getVehSid()).getData(); + if (!trailers.isEmpty()) { + StringBuffer sb = new StringBuffer(); + sb.append(entity.getVinNo()).append("/"); + for (BaseTrailer trailer : trailers) { + sb.append(trailer.getVinNo()).append("/"); + } + if (sb.length() > 0) { + sb.delete(sb.length(), sb.length() - 1); + } + vo.setVinNo(sb.toString()); + } + List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List filess = new ArrayList<>(); + for (String file : files) { + LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); + f.setUrl(file); + filess.add(f); + } + vo.setNotices(filess); + } + List fileList2 = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); + fileList2.removeAll(Collections.singleton(null)); + if (!fileList2.isEmpty()) { + List files = fileList2.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List filess = new ArrayList<>(); + for (String file : files) { + LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); + f.setUrl(file); + filess.add(f); + } + vo.setProxy(filess); + } + } + return rb.success().setData(vo); + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean mortgageHandle(MortgageInitDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + LoanRelieveMortgage entity = fetchBySid(sid); + StringBuffer sb = new StringBuffer(); + if (null != entity) { + if (StringUtils.isNotBlank(dto.getRemarks())) { + entity.setRemarks(dto.getRemarks()); + } + if (!dto.getConfirmFiles().isEmpty()) { + dto.getConfirmFiles().stream().forEach(s -> { + sb.append(s).append(","); + }); + if (sb.length() > 0) { + sb.delete(sb.length(), sb.length() - 1); + } + entity.setReceiveFiles(sb.toString()); + } + baseMapper.updateById(entity); + //删除附件表中关于该linkSid的文件 + loanFileService.delByLinkSidOrType(sid, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); + loanFileService.delByLinkSidOrType(sid, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); + List filess = dto.getNotices(); + if (!filess.isEmpty()) { + List files = new ArrayList<>(); + for (LoanRelieveMortgageFile file : filess) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); + } + List pfiless = dto.getProxy(); + if (!pfiless.isEmpty()) { + List files = new ArrayList<>(); + for (LoanRelieveMortgageFile file : pfiless) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); + } + } + return rb.success(); + } + + public ResultBean transferInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + LoanRelieveMortgageTransferVo vo = new LoanRelieveMortgageTransferVo(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + LoanRelieveMortgage entity = fetchBySid(sid); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + if (StringUtils.isNotBlank(entity.getReceiveFiles())) { + List stringList = Arrays.asList(entity.getReceiveFiles().split(",")); + vo.setConfirmFiles(stringList); + } + if (null != entity.getTransferDate()) { + vo.setTransferDate(sdf.format(entity.getTransferDate())); + } + CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(entity.getCustomerSid()).getData(); + if (null != customerTemp) { + if (StringUtils.isNotBlank(customerTemp.getMobile())) { + vo.setMobile(customerTemp.getMobile()); + } + } + List trailers = baseTrailerFeign.getByVehSid(entity.getVehSid()).getData(); + if (!trailers.isEmpty()) { + StringBuffer sb = new StringBuffer(); + sb.append(entity.getVinNo()).append("/"); + for (BaseTrailer trailer : trailers) { + sb.append(trailer.getVinNo()).append("/"); + } + if (sb.length() > 0) { + sb.delete(sb.length(), sb.length() - 1); + } + vo.setVinNo(sb.toString()); + } + List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List filess = new ArrayList<>(); + for (String file : files) { + LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); + f.setUrl(file); + filess.add(f); + } + vo.setNotices(filess); + } + List fileList2 = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); + fileList2.removeAll(Collections.singleton(null)); + if (!fileList2.isEmpty()) { + List files = fileList2.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List filess = new ArrayList<>(); + for (String file : files) { + LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); + f.setUrl(file); + filess.add(f); + } + vo.setProxy(filess); + } + List fileList3 = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_HANDOVER_INFO.getAttachType()); + fileList3.removeAll(Collections.singleton(null)); + if (!fileList3.isEmpty()) { + List files = fileList3.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + List filess = new ArrayList<>(); + for (String file : files) { + LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); + f.setUrl(file); + filess.add(f); + } + vo.setHandoverFiles(filess); + } + } + return rb.success().setData(vo); + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean mortgageTransfer(LoanRelieveMortgageTransferDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + LoanRelieveMortgage entity = fetchBySid(sid); + StringBuffer sb = new StringBuffer(); + if (null != entity) { + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setState(0); + baseMapper.updateById(entity); + //删除附件表中关于该linkSid的文件 + loanFileService.delByLinkSidOrType(sid, LoanFileEnum.MORTGAGE_HANDOVER_INFO.getAttachType()); + List hfiless = dto.getHandoverFiles(); + if (!hfiless.isEmpty()) { + List files = new ArrayList<>(); + for (LoanRelieveMortgageFile file : hfiless) { + files.add(file.getUrl()); + } + loanFileService.saveAll(sid, files, LoanFileEnum.MORTGAGE_HANDOVER_INFO.getAttachType()); + } + } + return rb.success(); + } }