52 changed files with 1977 additions and 82 deletions
@ -0,0 +1,32 @@ |
|||
package com.yxt.anrui.portal.api.sysappendix; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Data |
|||
public class SysAppendix extends BaseEntity { |
|||
private static final long serialVersionUID = -6810446025754215365L; |
|||
|
|||
@ApiModelProperty("文件名") |
|||
private String fileName; |
|||
@ApiModelProperty("文件类型") |
|||
private String fileType; |
|||
@ApiModelProperty("上传人姓名") |
|||
private String name; |
|||
@ApiModelProperty("关联sid") |
|||
private String linkSid; |
|||
@ApiModelProperty("附件类型") |
|||
private String attachType; |
|||
@ApiModelProperty("文件大小") |
|||
private String fileSize; |
|||
@ApiModelProperty("文件的相对路径") |
|||
private String filePath; |
|||
|
|||
|
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.yxt.anrui.portal.api.sysappendix; |
|||
|
|||
import com.yxt.anrui.portal.api.sysnotice.UrlQuery; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Data |
|||
public class SysAppendixQuery { |
|||
|
|||
private String linkSid; |
|||
|
|||
private List<UrlQuery> filesList = new ArrayList<>(); |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.yxt.anrui.portal.api.sysnotice; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonIgnore; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Data |
|||
public class NoticeAppListVo { |
|||
|
|||
private PushNoticeAppVo pageInfo; |
|||
|
|||
private String title; |
|||
|
|||
private String sid; |
|||
|
|||
@ApiModelProperty("移动端页面地址") |
|||
@JsonIgnore |
|||
private String moduleAction; |
|||
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") |
|||
@JsonIgnore |
|||
private String app_type; |
|||
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)") |
|||
@JsonIgnore |
|||
private String args_json; |
|||
@ApiModelProperty("插件sid") |
|||
@JsonIgnore |
|||
private String moduleSid; |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.portal.api.sysnotice; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Data |
|||
public class PushNoticeAppVo { |
|||
|
|||
private String path; |
|||
|
|||
private String modulePluginName; |
|||
|
|||
private int moduleVersion; |
|||
|
|||
private String json; |
|||
|
|||
private String type; |
|||
|
|||
private String moduleAction; |
|||
} |
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.portal.api.sysnotice; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Data |
|||
public class PushNoticeQuery { |
|||
|
|||
@ApiModelProperty("移动端页面地址") |
|||
private String moduleAction; |
|||
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") |
|||
private String app_type; |
|||
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)") |
|||
private String args_json; |
|||
@ApiModelProperty("插件sid") |
|||
private String moduleSid; |
|||
private String title; |
|||
private String sid; |
|||
private String pcUrl; |
|||
@ApiModelProperty("类别") |
|||
private String type; |
|||
@ApiModelProperty("类别key") |
|||
private String typeKey; |
|||
|
|||
private String createTime; |
|||
@ApiModelProperty("有效期至") |
|||
private String validityDate; |
|||
@ApiModelProperty("用户sid") |
|||
private String userSid; |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.yxt.anrui.portal.api.sysnotice; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Data |
|||
public class SysNoticeAppDetails { |
|||
|
|||
|
|||
@ApiModelProperty("标题") |
|||
private String title; |
|||
@ApiModelProperty("有效期至") |
|||
private String validityDate; |
|||
@ApiModelProperty("内容") |
|||
private String content; |
|||
@ApiModelProperty("附件") |
|||
private List<String> filesList = new ArrayList<>(); |
|||
@ApiModelProperty("发布日期") |
|||
private String createTime; |
|||
|
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.portal.biz.sysappendix; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; |
|||
import com.yxt.anrui.portal.api.sysappendix.SysAppendix; |
|||
import com.yxt.anrui.portal.api.sysnotice.UrlQuery; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Mapper |
|||
public interface SysAppendixMapper extends BaseMapper<SysAppendix> { |
|||
List<SysAppendix> selectByLinkSid(String linkSid); |
|||
|
|||
int deleteByLinkSid(String linkSid); |
|||
|
|||
List<UrlQuery> selectByLinkSids(String sid); |
|||
} |
@ -0,0 +1,21 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.anrui.portal.biz.sysappendix.SysAppendixMapper"> |
|||
<select id="selectByLinkSid" resultType="com.yxt.anrui.portal.api.sysappendix.SysAppendix"> |
|||
select * |
|||
from sys_appendix |
|||
where linkSid = #{linkSid} |
|||
</select> |
|||
|
|||
<delete id="deleteByLinkSid"> |
|||
delete |
|||
from sys_appendix |
|||
where linkSid = #{linkSid} |
|||
</delete> |
|||
|
|||
<select id="selectByLinkSids" resultType="com.yxt.anrui.portal.api.sysnotice.UrlQuery"> |
|||
select fileName name, filePath url |
|||
from sys_appendix |
|||
where linkSid = #{sid} |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,79 @@ |
|||
package com.yxt.anrui.portal.biz.sysappendix; |
|||
|
|||
import com.yxt.anrui.portal.api.sysappendix.SysAppendix; |
|||
import com.yxt.anrui.portal.api.sysappendix.SysAppendixQuery; |
|||
import com.yxt.anrui.portal.api.sysnotice.UrlQuery; |
|||
import com.yxt.common.base.config.component.FileUploadComponent; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.io.File; |
|||
import java.util.List; |
|||
import java.util.stream.Collectors; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/1 |
|||
**/ |
|||
@Service |
|||
public class SysAppendixService extends MybatisBaseService<SysAppendixMapper, SysAppendix> { |
|||
|
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
|
|||
@Transactional(rollbackFor = Exception.class) |
|||
public int saveOrUpdateAppAppendix(SysAppendixQuery query) { |
|||
int i = 0; |
|||
String urlPrefix = fileUploadComponent.getUrlPrefix(); |
|||
String uploadPath = fileUploadComponent.getUploadPath(); |
|||
List<UrlQuery> list = query.getFilesList(); |
|||
List<SysAppendix> appendixList = baseMapper.selectByLinkSid(query.getLinkSid()); |
|||
// 去重列表(删除)
|
|||
appendixList.stream().forEach(item -> { |
|||
item.setFilePath(urlPrefix + item.getFilePath()); |
|||
}); |
|||
List<String> s = list.stream().map(v->v.getUrl()).collect(Collectors.toList()); |
|||
List<String> oldList = appendixList.stream().map(SysAppendix::getFilePath).collect(Collectors.toList()); |
|||
List<String> delList = oldList.stream().filter(item -> !s.contains(item)).collect(Collectors.toList()); |
|||
// 删除旧数据
|
|||
baseMapper.deleteByLinkSid(query.getLinkSid()); |
|||
|
|||
// 增加
|
|||
for (UrlQuery strs : list) { |
|||
String str = strs.getUrl(); |
|||
String pathLoc = str.replace(urlPrefix, uploadPath); |
|||
pathLoc = pathLoc.replace("/", File.separator); |
|||
File file = new File(pathLoc); |
|||
String size = ""; |
|||
if (file != null) { |
|||
size = fileUploadComponent.getPrintSize(file.length()); |
|||
} |
|||
String suffix = str.substring(str.lastIndexOf(".") + 1); // 文件类型
|
|||
String fileName = str.substring(str.lastIndexOf("/") + 1, str.lastIndexOf(".")); // 文件名
|
|||
SysAppendix commonAppendix = new SysAppendix(); |
|||
commonAppendix.setFileName(strs.getName()); |
|||
commonAppendix.setFileType(suffix); |
|||
commonAppendix.setLinkSid(query.getLinkSid()); |
|||
commonAppendix.setAttachType(""); |
|||
commonAppendix.setFileSize(size); |
|||
commonAppendix.setFilePath(str.replace(urlPrefix, "")); |
|||
i = insert(commonAppendix); |
|||
} |
|||
// 删除原文件
|
|||
if (i == 1) { |
|||
for (String path : delList) { |
|||
String pathLoc = path.replace(urlPrefix, uploadPath); |
|||
pathLoc = pathLoc.substring(0, pathLoc.lastIndexOf("/") + 1).replace("/", File.separator); |
|||
fileUploadComponent.deleteFiles(path, pathLoc); |
|||
} |
|||
} |
|||
return i; |
|||
} |
|||
|
|||
public List<UrlQuery> selectByLinKSid(String sid) { |
|||
return baseMapper.selectByLinkSids(sid); |
|||
} |
|||
} |
@ -0,0 +1,73 @@ |
|||
package com.yxt.anrui.riskcenter.api.loanrelievemortgage; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/16 14:34 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "解抵管理", description = "解抵管理") |
|||
@TableName("loan_relieve_mortgage") |
|||
public class LoanRelieveMortgage extends BaseEntity { |
|||
|
|||
@ApiModelProperty("使用组织sid") |
|||
private String useOrgSid; |
|||
@ApiModelProperty("使用组织名称") |
|||
private String useOrgName; |
|||
@ApiModelProperty("使用组织全路径") |
|||
private String orgSidPath; |
|||
@ApiModelProperty("销售订单关联业务车辆sid") |
|||
private String busVinSid; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车辆sid") |
|||
private String vehSid; |
|||
@ApiModelProperty("车牌号") |
|||
private String vehMark; |
|||
@ApiModelProperty("消贷合同号") |
|||
private String loanContractNo; |
|||
@ApiModelProperty("资方合同号") |
|||
private String bankContractNo; |
|||
@ApiModelProperty("销售部门") |
|||
private String dept; |
|||
@ApiModelProperty("销售部门sid") |
|||
private String deptSid; |
|||
@ApiModelProperty("销售专员") |
|||
private String salesman; |
|||
@ApiModelProperty("销售专员sid") |
|||
private String salesmanSid; |
|||
@ApiModelProperty("贷款人") |
|||
private String borrowerName; |
|||
@ApiModelProperty("贷款人sid") |
|||
private String borrowerSid; |
|||
@ApiModelProperty("客户名称") |
|||
private String customer; |
|||
@ApiModelProperty("客户Sid") |
|||
private String customerSid; |
|||
@ApiModelProperty("移交日期") |
|||
private Date transferDate; |
|||
@ApiModelProperty("接收文件") |
|||
private String receiveFiles; |
|||
@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; |
|||
@ApiModelProperty("资方") |
|||
private String bankName; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.anrui.riskcenter.api.loanrelievemortgage; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/21 9:12 |
|||
*/ |
|||
@Data |
|||
public class LoanRelieveMortgageDto implements Dto { |
|||
|
|||
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; |
|||
|
|||
} |
@ -0,0 +1,59 @@ |
|||
package 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; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
|
|||
/** |
|||
* @description: 解抵管理 |
|||
* @author: fan |
|||
* @date: 2023/7/6 |
|||
**/ |
|||
@Api(tags = "解抵管理") |
|||
@FeignClient( |
|||
contextId = "anrui-riskcenter-LoanRelieveMortgage", |
|||
name = "anrui-riskcenter", |
|||
path = "v1/loanrelievemortgage", |
|||
fallback = LoanRelieveMortgageFeignFallback.class) |
|||
public interface LoanRelieveMortgageFeign { |
|||
|
|||
/** |
|||
* 根据条件分页查询数据的列表(已测试) |
|||
* |
|||
* @param pq |
|||
*/ |
|||
@ApiOperation("根据条件分页查询数据的列表") |
|||
@PostMapping("/listPage") |
|||
public ResultBean<PagerVo<LoanRelieveMortgageVo>> listPage(@RequestBody PagerQuery<LoanRelieveMortgageQuery> pq); |
|||
|
|||
@ApiOperation("新增") |
|||
@PostMapping("/saveRelieveMortgage") |
|||
@ResponseBody |
|||
public ResultBean saveRelieveMortgage(@RequestBody LoanRelieveMortgageSaveDto dto); |
|||
|
|||
@ApiOperation("办理初始化") |
|||
@GetMapping("/mortgageInit") |
|||
@ResponseBody |
|||
public ResultBean<MortgageInitVo> mortgageInit(@RequestParam("sid") String sid); |
|||
|
|||
@ApiOperation("办理操作") |
|||
@PostMapping("/mortgageHandle") |
|||
@ResponseBody |
|||
public ResultBean mortgageHandle(@RequestBody MortgageInitDto dto); |
|||
|
|||
@ApiOperation("移交初始化/详情") |
|||
@GetMapping("/transferInit") |
|||
@ResponseBody |
|||
public ResultBean<LoanRelieveMortgageTransferVo> transferInit(@RequestParam("sid") String sid); |
|||
|
|||
@ApiOperation("移交操作") |
|||
@PostMapping("/mortgageTransfer") |
|||
@ResponseBody |
|||
public ResultBean mortgageTransfer(@RequestBody LoanRelieveMortgageTransferDto dto); |
|||
|
|||
} |
@ -0,0 +1,45 @@ |
|||
package 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; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/16 14:36 |
|||
*/ |
|||
@Component |
|||
public class LoanRelieveMortgageFeignFallback implements LoanRelieveMortgageFeign { |
|||
|
|||
@Override |
|||
public ResultBean<PagerVo<LoanRelieveMortgageVo>> listPage(PagerQuery<LoanRelieveMortgageQuery> pq) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean saveRelieveMortgage(LoanRelieveMortgageSaveDto dto) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<MortgageInitVo> mortgageInit(String sid) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean mortgageHandle(MortgageInitDto dto) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<LoanRelieveMortgageTransferVo> transferInit(String sid) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean mortgageTransfer(LoanRelieveMortgageTransferDto dto) { |
|||
return null; |
|||
} |
|||
} |
@ -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; |
|||
} |
@ -0,0 +1,50 @@ |
|||
package com.yxt.anrui.riskcenter.api.loanrelievemortgage; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/16 15:05 |
|||
*/ |
|||
@Data |
|||
public class LoanRelieveMortgageQuery implements Query { |
|||
|
|||
@ApiModelProperty("移交状态") |
|||
private String state; |
|||
@ApiModelProperty("分公司") |
|||
private String useOrgName; |
|||
@ApiModelProperty("销售部门") |
|||
private String dept; |
|||
@ApiModelProperty("销售专员") |
|||
private String salesman; |
|||
@ApiModelProperty("消贷合同号") |
|||
private String loanContractNo; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车牌号") |
|||
private String vehMark; |
|||
@ApiModelProperty("资方") |
|||
private String bankName; |
|||
@ApiModelProperty("资方合同号") |
|||
private String bankContractNo; |
|||
@ApiModelProperty("客户名称") |
|||
private String customer; |
|||
@ApiModelProperty("贷款人") |
|||
private String borrowerName; |
|||
@ApiModelProperty("移交开始日期") |
|||
private String transferStartDate; |
|||
@ApiModelProperty("移交结束日期") |
|||
private String transferEndDate; |
|||
|
|||
@ApiModelProperty("组织全路径") |
|||
private String orgPath; |
|||
@ApiModelProperty("菜单sid") |
|||
private String menuSid; |
|||
@ApiModelProperty("菜单url") |
|||
private String menuUrl; |
|||
@ApiModelProperty("用户sid") |
|||
private String userSid; |
|||
} |
@ -0,0 +1,53 @@ |
|||
package com.yxt.anrui.riskcenter.api.loanrelievemortgage; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Fan |
|||
* @description |
|||
* @date 2024/2/1 17:35 |
|||
*/ |
|||
@Data |
|||
public class LoanRelieveMortgageSaveDto implements Dto { |
|||
|
|||
@ApiModelProperty("创建者") |
|||
private String createBySid; |
|||
@ApiModelProperty("使用组织sid") |
|||
private String useOrgSid; |
|||
@ApiModelProperty("使用组织名称") |
|||
private String useOrgName; |
|||
@ApiModelProperty("使用组织全路径") |
|||
private String orgSidPath; |
|||
@ApiModelProperty("销售订单关联业务车辆sid") |
|||
private String busVinSid; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车辆sid") |
|||
private String vehSid; |
|||
@ApiModelProperty("车牌号") |
|||
private String vehMark; |
|||
@ApiModelProperty("消贷合同号") |
|||
private String loanContractNo; |
|||
@ApiModelProperty("资方合同号") |
|||
private String bankContractNo; |
|||
@ApiModelProperty("销售部门") |
|||
private String dept; |
|||
@ApiModelProperty("销售部门sid") |
|||
private String deptSid; |
|||
@ApiModelProperty("销售专员") |
|||
private String salesman; |
|||
@ApiModelProperty("销售专员sid") |
|||
private String salesmanSid; |
|||
@ApiModelProperty("贷款人") |
|||
private String borrowerName; |
|||
@ApiModelProperty("贷款人sid") |
|||
private String borrowerSid; |
|||
@ApiModelProperty("客户名称") |
|||
private String customer; |
|||
@ApiModelProperty("客户Sid") |
|||
private String customerSid; |
|||
@ApiModelProperty("资方") |
|||
private String bankName; |
|||
} |
@ -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<LoanRelieveMortgageFile> notices = new ArrayList<>(); //解抵通知单
|
|||
// private List<LoanRelieveMortgageFile> proxy = new ArrayList<>(); //委托书
|
|||
private List<LoanRelieveMortgageFile> handoverFiles = new ArrayList<>(); //交接材料
|
|||
// private List<String> 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; |
|||
|
|||
} |
@ -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<LoanRelieveMortgageFile> notices = new ArrayList<>(); //解抵通知单
|
|||
private List<LoanRelieveMortgageFile> proxy = new ArrayList<>(); //委托书
|
|||
private List<LoanRelieveMortgageFile> handoverFiles = new ArrayList<>(); //交接材料
|
|||
private List<String> 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; |
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
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.Date; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/16 15:04 |
|||
*/ |
|||
@Data |
|||
public class LoanRelieveMortgageVo implements Vo { |
|||
|
|||
private String sid; |
|||
@ApiModelProperty("移交状态") |
|||
private String state; |
|||
@ApiModelProperty("分公司") |
|||
private String useOrgName; |
|||
@ApiModelProperty("销售部门") |
|||
private String dept; |
|||
@ApiModelProperty("销售专员") |
|||
private String salesman; |
|||
@ApiModelProperty("消贷合同号") |
|||
private String loanContractNo; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车牌号") |
|||
private String vehMark; |
|||
@ApiModelProperty("资方") |
|||
private String bankName; |
|||
@ApiModelProperty("资方合同号") |
|||
private String bankContractNo; |
|||
@ApiModelProperty("客户名称") |
|||
private String customer; |
|||
@ApiModelProperty("贷款人") |
|||
private String borrowerName; |
|||
@ApiModelProperty("移交日期") |
|||
private String transferDate; |
|||
|
|||
} |
@ -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<LoanRelieveMortgageFile> notices = new ArrayList<>(); //解抵通知单
|
|||
private List<LoanRelieveMortgageFile> proxy = new ArrayList<>(); //委托书
|
|||
private List<String> confirmFiles = new ArrayList<>(); //接收确认文件
|
|||
private String remarks; //备注
|
|||
|
|||
} |
@ -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<LoanRelieveMortgageFile> notices = new ArrayList<>(); //解抵通知单
|
|||
private List<LoanRelieveMortgageFile> proxy = new ArrayList<>(); //委托书
|
|||
private List<String> confirmFiles = new ArrayList<>(); //接收确认文件
|
|||
private String remarks; //备注
|
|||
|
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@Data |
|||
public class BiddingVo { |
|||
@ApiModelProperty("时间") |
|||
private String createTime; |
|||
@ApiModelProperty("报价") |
|||
private String price; |
|||
@ApiModelProperty("分公司") |
|||
private String useOrgName; |
|||
@ApiModelProperty("报价人") |
|||
private String createByName; |
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@Data |
|||
public class LoanSecondarySalesBidding extends BaseEntity { |
|||
private static final long serialVersionUID = 5823145478364799224L; |
|||
@ApiModelProperty("报价人") |
|||
private String createByName; |
|||
private String mainSid; |
|||
@ApiModelProperty("报价") |
|||
private BigDecimal price; |
|||
@ApiModelProperty("分公司") |
|||
private String useOrgName; |
|||
private String useOrgSid; |
|||
private String orgSidPath; |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@Data |
|||
public class LoanSecondarySalesBiddingDto { |
|||
|
|||
private String mainSid; |
|||
@ApiModelProperty("报价") |
|||
private String price; |
|||
@ApiModelProperty("机构全路径") |
|||
private String orgPath; |
|||
|
|||
private String userSid; |
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@FeignClient( |
|||
contextId = "anrui-riskcenter-LoanSecondarySalesBidding", |
|||
name = "anrui-riskcenter", |
|||
path = "v1/LoanSecondarySalesBidding", |
|||
fallback = LoanSecondarySalesBiddingFeignFallback.class) |
|||
public interface LoanSecondarySalesBiddingFeign { |
|||
|
|||
@ApiOperation("保存") |
|||
@PostMapping("/save") |
|||
ResultBean save(@RequestBody LoanSecondarySalesBiddingDto dto); |
|||
|
|||
@ApiOperation("竞价列表") |
|||
@GetMapping("/getList") |
|||
ResultBean<List<BiddingVo>> getList(@RequestParam("sid") String sid); |
|||
|
|||
@ApiOperation("当前竞价最高") |
|||
@GetMapping("/getPrice") |
|||
ResultBean<String> getPrice(@RequestParam("sid") String sid); |
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; |
|||
|
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@Component |
|||
public class LoanSecondarySalesBiddingFeignFallback { |
|||
} |
@ -0,0 +1,22 @@ |
|||
package com.yxt.anrui.riskcenter.biz.loanrelievemortgage; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
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.RedemptionVinList; |
|||
import com.yxt.anrui.riskcenter.api.loanredemptionveh.LoanRedemptionVeh; |
|||
import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgage; |
|||
import com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
@Mapper |
|||
public interface LoanRelieveMortgageMapper extends BaseMapper<LoanRelieveMortgage> { |
|||
|
|||
|
|||
IPage<LoanRelieveMortgageVo> listPage(IPage<LoanRelieveMortgage> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRelieveMortgage> qw); |
|||
} |
@ -0,0 +1,26 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!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.loanrelievemortgage.LoanRelieveMortgageMapper"> |
|||
|
|||
|
|||
<select id="listPage" resultType="com.yxt.anrui.riskcenter.api.loanrelievemortgage.LoanRelieveMortgageVo"> |
|||
SELECT sid, |
|||
`state`, |
|||
useOrgName, |
|||
dept, |
|||
salesman, |
|||
loanContractNo, |
|||
vinNo, |
|||
vehMark, |
|||
bankName, |
|||
bankContractNo, |
|||
customer, |
|||
borrowerName, |
|||
date_format(transferDate, '%Y-%m-%d') as transferDate |
|||
from loan_relieve_mortgage |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
|
|||
</select> |
|||
</mapper> |
@ -0,0 +1,54 @@ |
|||
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.*; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
|
|||
@Api(tags = "解抵管理") |
|||
@RestController |
|||
@RequestMapping("v1/loanrelievemortgage") |
|||
public class LoanRelieveMortgageRest implements LoanRelieveMortgageFeign { |
|||
|
|||
@Autowired |
|||
private LoanRelieveMortgageService loanRelieveMortgageService; |
|||
|
|||
@Override |
|||
public ResultBean<PagerVo<LoanRelieveMortgageVo>> listPage(PagerQuery<LoanRelieveMortgageQuery> pq) { |
|||
ResultBean<PagerVo<LoanRelieveMortgageVo>> rb = ResultBean.fireFail(); |
|||
PagerVo<LoanRelieveMortgageVo> pv = loanRelieveMortgageService.listPage(pq); |
|||
return rb.success().setData(pv); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean saveRelieveMortgage(LoanRelieveMortgageSaveDto dto) { |
|||
return loanRelieveMortgageService.saveRelieveMortgage(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<MortgageInitVo> mortgageInit(String sid) { |
|||
return loanRelieveMortgageService.mortgageInit(sid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean mortgageHandle(MortgageInitDto dto) { |
|||
return loanRelieveMortgageService.mortgageHandle(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<LoanRelieveMortgageTransferVo> transferInit(String sid) { |
|||
return loanRelieveMortgageService.transferInit(sid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean mortgageTransfer(LoanRelieveMortgageTransferDto dto) { |
|||
return loanRelieveMortgageService.mortgageTransfer(dto); |
|||
} |
|||
} |
@ -0,0 +1,369 @@ |
|||
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.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.*; |
|||
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; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
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: |
|||
* @author: fzz |
|||
* @date: 2023/7/6 |
|||
**/ |
|||
@Service |
|||
public class LoanRelieveMortgageService extends MybatisBaseService<LoanRelieveMortgageMapper, LoanRelieveMortgage> { |
|||
|
|||
@Autowired |
|||
private SysUserFeign sysUserFeign; |
|||
@Autowired |
|||
private CrmCustomerTempFeign crmCustomerTempFeign; |
|||
@Autowired |
|||
private BaseTrailerFeign baseTrailerFeign; |
|||
@Autowired |
|||
private LoanFileService loanFileService; |
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
|
|||
public ResultBean saveRelieveMortgage(LoanRelieveMortgageSaveDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
LoanRelieveMortgage entity = new LoanRelieveMortgage(); |
|||
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|||
int i = baseMapper.insert(entity); |
|||
if (i > 0) { |
|||
return rb.success(); |
|||
} |
|||
return rb; |
|||
} |
|||
|
|||
public PagerVo<LoanRelieveMortgageVo> listPage(PagerQuery<LoanRelieveMortgageQuery> pq) { |
|||
IPage<LoanRelieveMortgage> page = PagerUtil.queryToPage(pq); |
|||
LoanRelieveMortgageQuery pagerQuery = pq.getParams(); |
|||
QueryWrapper<LoanRelieveMortgage> qw = new QueryWrapper<>(); |
|||
//=======================
|
|||
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|||
privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); |
|||
privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); |
|||
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); |
|||
privilegeQuery.setUserSid(pagerQuery.getUserSid()); |
|||
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|||
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|||
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|||
String orgSidPath = pagerQuery.getOrgPath(); |
|||
orgSidPath = orgSidPath + "/"; |
|||
int i1 = orgSidPath.indexOf("/"); |
|||
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|||
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|||
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|||
String orgLevelKey = defaultIdReltBean.getData(); |
|||
if ("1".equals(orgLevelKey)) { |
|||
orgSidPath = orgSidPath.substring(0, i1); |
|||
qw.like("orgSidPath", orgSidPath); |
|||
} else if ("2".equals(orgLevelKey)) { |
|||
orgSidPath = orgSidPath.substring(0, i2); |
|||
qw.like("orgSidPath", orgSidPath); |
|||
} else if ("3".equals(orgLevelKey)) { |
|||
orgSidPath = orgSidPath.substring(0, i3); |
|||
qw.like("orgSidPath", orgSidPath); |
|||
} else if ("4".equals(orgLevelKey)) { |
|||
orgSidPath = orgSidPath.substring(0, i4); |
|||
qw.like("orgSidPath", orgSidPath); |
|||
} else if ("5".equals(orgLevelKey)) { |
|||
qw.eq("createBySid", pagerQuery.getUserSid()); |
|||
} else { |
|||
PagerVo<LoanRelieveMortgageVo> p = new PagerVo<>(); |
|||
return p; |
|||
} |
|||
} else { |
|||
PagerVo<LoanRelieveMortgageVo> p = new PagerVo<>(); |
|||
return p; |
|||
} |
|||
//=======================
|
|||
//移交状态
|
|||
if (StringUtils.isNotBlank(pagerQuery.getState())) { |
|||
qw.like("`state`", pagerQuery.getState()); |
|||
} |
|||
//销售专员
|
|||
if (StringUtils.isNotBlank(pagerQuery.getSalesman())) { |
|||
qw.like("salesman", pagerQuery.getSalesman()); |
|||
} |
|||
//分公司
|
|||
if (StringUtils.isNotBlank(pagerQuery.getUseOrgName())) { |
|||
qw.like("useOrgName", pagerQuery.getUseOrgName()); |
|||
} |
|||
//申请部门
|
|||
if (StringUtils.isNotBlank(pagerQuery.getDept())) { |
|||
qw.like("dept", pagerQuery.getDept()); |
|||
} |
|||
//消贷合同号
|
|||
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { |
|||
qw.like("loanContractNo", pagerQuery.getLoanContractNo()); |
|||
} |
|||
//资方
|
|||
if (StringUtils.isNotBlank(pagerQuery.getBankName())) { |
|||
qw.like("bankName", pagerQuery.getBankName()); |
|||
} |
|||
//资方合同号
|
|||
if (StringUtils.isNotBlank(pagerQuery.getBankContractNo())) { |
|||
qw.like("bankContractNo", pagerQuery.getBankContractNo()); |
|||
} |
|||
//客户名称
|
|||
if (StringUtils.isNotBlank(pagerQuery.getCustomer())) { |
|||
qw.like("customer", pagerQuery.getCustomer()); |
|||
} |
|||
//贷款人
|
|||
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { |
|||
qw.like("borrowerName", pagerQuery.getBorrowerName()); |
|||
} |
|||
//车架号
|
|||
if (StringUtils.isNotBlank(pagerQuery.getVinNo())) { |
|||
qw.like("vinNo", pagerQuery.getVinNo()); |
|||
} |
|||
//车牌号
|
|||
if (StringUtils.isNotBlank(pagerQuery.getVehMark())) { |
|||
qw.like("vehMark", pagerQuery.getVehMark()); |
|||
} |
|||
String startDate = pagerQuery.getTransferStartDate(); |
|||
String endDate = pagerQuery.getTransferEndDate(); |
|||
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (transferDate,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). |
|||
apply(StringUtils.isNotEmpty(endDate), "date_format (transferDate,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" |
|||
); |
|||
|
|||
qw.eq("isDelete", 0); |
|||
qw.orderBy(true, false, "`state`") |
|||
.orderBy(true, false, "createTime") |
|||
; |
|||
IPage<LoanRelieveMortgageVo> pagging = baseMapper.listPage(page, qw); |
|||
PagerVo<LoanRelieveMortgageVo> p = PagerUtil.pageToVo(pagging, null); |
|||
return p; |
|||
} |
|||
|
|||
public ResultBean<MortgageInitVo> 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<String> 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<BaseTrailer> 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() - 1, sb.length()); |
|||
} |
|||
vo.setVinNo(sb.toString()); |
|||
} |
|||
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); |
|||
fileList.removeAll(Collections.singleton(null)); |
|||
if (!fileList.isEmpty()) { |
|||
List<String> files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). |
|||
collect(Collectors.toList()); |
|||
List<LoanRelieveMortgageFile> filess = new ArrayList<>(); |
|||
for (String file : files) { |
|||
LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); |
|||
f.setUrl(file); |
|||
filess.add(f); |
|||
} |
|||
vo.setNotices(filess); |
|||
} |
|||
List<LoanFile> fileList2 = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); |
|||
fileList2.removeAll(Collections.singleton(null)); |
|||
if (!fileList2.isEmpty()) { |
|||
List<String> files = fileList2.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). |
|||
collect(Collectors.toList()); |
|||
List<LoanRelieveMortgageFile> 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() - 1, sb.length()); |
|||
} |
|||
entity.setReceiveFiles(sb.toString()); |
|||
} |
|||
entity.setState(2); |
|||
baseMapper.updateById(entity); |
|||
//删除附件表中关于该linkSid的文件
|
|||
loanFileService.delByLinkSidOrType(sid, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); |
|||
loanFileService.delByLinkSidOrType(sid, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); |
|||
List<LoanRelieveMortgageFile> filess = dto.getNotices(); |
|||
if (!filess.isEmpty()) { |
|||
List<String> files = new ArrayList<>(); |
|||
for (LoanRelieveMortgageFile file : filess) { |
|||
files.add(file.getUrl()); |
|||
} |
|||
loanFileService.saveAll(sid, files, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); |
|||
} |
|||
List<LoanRelieveMortgageFile> pfiless = dto.getProxy(); |
|||
if (!pfiless.isEmpty()) { |
|||
List<String> files = new ArrayList<>(); |
|||
for (LoanRelieveMortgageFile file : pfiless) { |
|||
files.add(file.getUrl()); |
|||
} |
|||
loanFileService.saveAll(sid, files, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); |
|||
} |
|||
} |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean<LoanRelieveMortgageTransferVo> 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<String> 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<BaseTrailer> 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() - 1, sb.length()); |
|||
} |
|||
vo.setVinNo(sb.toString()); |
|||
} |
|||
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_NOTICES.getAttachType()); |
|||
fileList.removeAll(Collections.singleton(null)); |
|||
if (!fileList.isEmpty()) { |
|||
List<String> files = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). |
|||
collect(Collectors.toList()); |
|||
List<LoanRelieveMortgageFile> filess = new ArrayList<>(); |
|||
for (String file : files) { |
|||
LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); |
|||
f.setUrl(file); |
|||
filess.add(f); |
|||
} |
|||
vo.setNotices(filess); |
|||
} |
|||
List<LoanFile> fileList2 = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_POROXY.getAttachType()); |
|||
fileList2.removeAll(Collections.singleton(null)); |
|||
if (!fileList2.isEmpty()) { |
|||
List<String> files = fileList2.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). |
|||
collect(Collectors.toList()); |
|||
List<LoanRelieveMortgageFile> filess = new ArrayList<>(); |
|||
for (String file : files) { |
|||
LoanRelieveMortgageFile f = new LoanRelieveMortgageFile(); |
|||
f.setUrl(file); |
|||
filess.add(f); |
|||
} |
|||
vo.setProxy(filess); |
|||
} |
|||
List<LoanFile> fileList3 = loanFileService.selectByLinkSid(sid, LoanFileEnum.MORTGAGE_HANDOVER_INFO.getAttachType()); |
|||
fileList3.removeAll(Collections.singleton(null)); |
|||
if (!fileList3.isEmpty()) { |
|||
List<String> files = fileList3.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). |
|||
collect(Collectors.toList()); |
|||
List<LoanRelieveMortgageFile> 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<LoanRelieveMortgageFile> hfiless = dto.getHandoverFiles(); |
|||
if (!hfiless.isEmpty()) { |
|||
List<String> files = new ArrayList<>(); |
|||
for (LoanRelieveMortgageFile file : hfiless) { |
|||
files.add(file.getUrl()); |
|||
} |
|||
loanFileService.saveAll(sid, files, LoanFileEnum.MORTGAGE_HANDOVER_INFO.getAttachType()); |
|||
} |
|||
} |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@Mapper |
|||
public interface LoanSecondarySalesBiddingMapper extends BaseMapper<LoanSecondarySalesBidding> { |
|||
|
|||
|
|||
LoanSecondarySalesBidding selectByMainSid(String mainSid); |
|||
|
|||
List<BiddingVo> getList(String sid); |
|||
|
|||
String getPrice(String sid); |
|||
} |
@ -0,0 +1,27 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!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.loansecondarysalesbidding.LoanSecondarySalesBiddingMapper"> |
|||
<select id="selectByMainSid" |
|||
resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding"> |
|||
select * |
|||
from loan_secondary_sales_bidding |
|||
where mainSid = #{mainSid} |
|||
order by price desc |
|||
limit 1 |
|||
</select> |
|||
|
|||
<select id="getList" resultType="com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo"> |
|||
select DATE_FORMAT(createTime, '%Y-%m-%d') as createTime, createByName, price, useOrgName |
|||
from loan_secondary_sales_bidding |
|||
where mainSid = #{sid} |
|||
order by price desc |
|||
</select> |
|||
|
|||
<select id="getPrice" resultType="java.lang.String"> |
|||
select price |
|||
from loan_secondary_sales_bidding |
|||
where mainSid = #{sid} |
|||
order by price desc |
|||
limit 1 |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,41 @@ |
|||
package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding; |
|||
|
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingFeign; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@RestController |
|||
@RequestMapping("v1/LoanSecondarySalesBidding") |
|||
@Api(tags = "二次销售公示竞价") |
|||
public class LoanSecondarySalesBiddingRest implements LoanSecondarySalesBiddingFeign { |
|||
|
|||
@Autowired |
|||
private LoanSecondarySalesBiddingService loanSecondarySalesBiddingService; |
|||
|
|||
@Override |
|||
public ResultBean save(LoanSecondarySalesBiddingDto dto) { |
|||
return loanSecondarySalesBiddingService.saveBidding(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<List<BiddingVo>> getList(String sid) { |
|||
return loanSecondarySalesBiddingService.getList(sid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> getPrice(String sid) { |
|||
return loanSecondarySalesBiddingService.getPrice(sid); |
|||
} |
|||
} |
@ -0,0 +1,84 @@ |
|||
package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding; |
|||
|
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|||
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.loansecondarysalesbidding.BiddingVo; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding; |
|||
import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/2/2 |
|||
**/ |
|||
@Service |
|||
public class LoanSecondarySalesBiddingService extends MybatisBaseService<LoanSecondarySalesBiddingMapper, LoanSecondarySalesBidding> { |
|||
|
|||
@Autowired |
|||
private SysStaffOrgFeign sysStaffOrgFeign; |
|||
@Autowired |
|||
private SysOrganizationFeign sysOrganizationFeign; |
|||
@Autowired |
|||
private SysUserFeign sysUserFeign; |
|||
|
|||
public ResultBean saveBidding(LoanSecondarySalesBiddingDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
LoanSecondarySalesBidding loanSecondarySalesBidding = new LoanSecondarySalesBidding(); |
|||
loanSecondarySalesBidding.setCreateBySid(dto.getMainSid()); |
|||
loanSecondarySalesBidding.setMainSid(dto.getMainSid()); |
|||
loanSecondarySalesBidding.setOrgSidPath(dto.getOrgPath()); |
|||
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); |
|||
if ("0".equals(useOrgSid)) { |
|||
return rb.setMsg("您所在机构没有分公司,不允许竞价"); |
|||
} |
|||
loanSecondarySalesBidding.setUseOrgSid(useOrgSid); |
|||
//创建组织使用组织
|
|||
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid); |
|||
if (organizationResultBean.getData() != null) { |
|||
loanSecondarySalesBidding.setUseOrgName(organizationResultBean.getData().getName()); |
|||
} |
|||
//根据用户sid查询人员姓名
|
|||
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); |
|||
if (!userVoResultBean.getSuccess()) { |
|||
return rb.setMsg(userVoResultBean.getMsg()); |
|||
} |
|||
loanSecondarySalesBidding.setCreateByName(userVoResultBean.getData().getName()); |
|||
//查询最高竞价
|
|||
LoanSecondarySalesBidding loanSecondarySalesBidding1 = baseMapper.selectByMainSid(dto.getMainSid()); |
|||
if (StringUtils.isNotBlank(dto.getPrice())) { |
|||
if ((new BigDecimal(dto.getPrice()).subtract(loanSecondarySalesBidding1.getPrice()).compareTo(new BigDecimal("1000"))) < 0) { |
|||
return rb.setMsg("确认失败,每次竞价幅度需不低于1000元"); |
|||
} |
|||
loanSecondarySalesBidding.setPrice(new BigDecimal(dto.getPrice())); |
|||
} else { |
|||
return rb.setMsg("请输入您的报价"); |
|||
} |
|||
baseMapper.insert(loanSecondarySalesBidding); |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean<List<BiddingVo>> getList(String sid) { |
|||
ResultBean<List<BiddingVo>> rb = ResultBean.fireFail(); |
|||
List<BiddingVo> list = baseMapper.getList(sid); |
|||
list.removeAll(Collections.singleton(null)); |
|||
return rb.success().setData(list); |
|||
} |
|||
|
|||
public ResultBean<String> getPrice(String sid) { |
|||
ResultBean<String> rb = ResultBean.fireFail(); |
|||
String price = baseMapper.getPrice(sid); |
|||
return rb.success().setData(price); |
|||
} |
|||
} |
Loading…
Reference in new issue