Browse Source

移动端欠款客户备案

master
fanzongzhe 2 years ago
parent
commit
dcada4708a
  1. 2
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempVo.java
  2. 1
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml
  3. 20
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeign.java
  4. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeignFallback.java
  5. 85
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordDto.java
  6. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordInitVo.java
  7. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppSubmitCustomerRecordDto.java
  8. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecordstaff/AppStaffVo.java
  9. 19
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordRest.java
  10. 457
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordService.java
  11. 82
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordDto.java
  12. 56
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeign.java
  13. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeignFallback.java
  14. 43
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordInitVo.java
  15. 24
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/SalesmanRsk.java
  16. 24
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/StaffVo.java
  17. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordDelegateQuery.java
  18. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordTaskQuery.java
  19. 35
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CompleteCustomerRecordDto.java
  20. 21
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CustomerRecordFlowableQuery.java
  21. 18
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/SubmitCustomerRecordDto.java
  22. 53
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordRest.java
  23. 161
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordService.java

2
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempVo.java

@ -97,6 +97,8 @@ public class AppCrmCustomerTempVo implements Vo {
private String idDate; private String idDate;
@ApiModelProperty("证件类型") @ApiModelProperty("证件类型")
private String idType; private String idType;
@ApiModelProperty("证件类型key")
private String idTypeKey;
@ApiModelProperty("证件号码") @ApiModelProperty("证件号码")
private String idNumber; private String idNumber;

1
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml

@ -42,6 +42,7 @@
cct.endDate as idDate, cct.endDate as idDate,
cct.IDNumber as idNumber, cct.IDNumber as idNumber,
cct.certificateType as idType, cct.certificateType as idType,
cct.certificateTypeKey as idTypeKey,
cct.province as province, cct.province as province,
cct.city as city, cct.city as city,
cct.county as county, cct.county as county,

20
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeign.java

@ -1,8 +1,6 @@
package com.yxt.anrui.riskcenter.api.loancustomerrecord; package com.yxt.anrui.riskcenter.api.loancustomerrecord;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordQuery;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
@ -60,6 +58,7 @@ public interface LoanCustomerRecordFeign {
/** /**
* 保存修改 * 保存修改
*
* @param * @param
*/ */
@ApiOperation("保存修改") @ApiOperation("保存修改")
@ -69,6 +68,7 @@ public interface LoanCustomerRecordFeign {
/** /**
* 查询挂靠公司 * 查询挂靠公司
*
* @param * @param
*/ */
@ApiOperation("查询挂靠公司") @ApiOperation("查询挂靠公司")
@ -136,4 +136,18 @@ public interface LoanCustomerRecordFeign {
@ResponseBody @ResponseBody
ResultBean<AppCustomerRecordInitVo> customerRecordInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid); ResultBean<AppCustomerRecordInitVo> customerRecordInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid);
@ApiOperation("移动端-欠款客户备案新增修改")
@PostMapping("/saveCustomerRecord")
@ResponseBody
ResultBean<String> saveCustomerRecord(@RequestBody AppCustomerRecordDto dto);
@ApiOperation("移动端-欠款客户备案删除")
@DeleteMapping("/deleteCustomerRecord/{sid}")
@ResponseBody
ResultBean deleteCustomerRecord(@PathVariable("sid") String sid);
@ApiOperation("移动端-欠款客户备案提交")
@PostMapping("/submitCustomerRecord")
public ResultBean submitCustomerRecord(@RequestBody @Valid AppSubmitCustomerRecordDto dto);
} }

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeignFallback.java

@ -1,9 +1,7 @@
package com.yxt.anrui.riskcenter.api.loancustomerrecord; package com.yxt.anrui.riskcenter.api.loancustomerrecord;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordQuery;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
@ -96,4 +94,19 @@ public class LoanCustomerRecordFeignFallback implements LoanCustomerRecordFeign
public ResultBean<AppCustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) { public ResultBean<AppCustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) {
return null; return null;
} }
@Override
public ResultBean<String> saveCustomerRecord(AppCustomerRecordDto dto) {
return null;
}
@Override
public ResultBean deleteCustomerRecord(String sid) {
return null;
}
@Override
public ResultBean submitCustomerRecord(AppSubmitCustomerRecordDto dto) {
return null;
}
} }

85
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordDto.java

@ -0,0 +1,85 @@
package com.yxt.anrui.riskcenter.api.loancustomerrecord.app;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.AppStaffVo;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/10/17 8:31
*/
@Data
public class AppCustomerRecordDto implements Dto {
private String sid;
private String userSid;
private String orgPath;
// private String publishInfo;
// private String taskId;
// private String procInsId;
@ApiModelProperty("申请人")
private String applyName;
@ApiModelProperty("申请日期")
private String applyDate;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String dept;
@ApiModelProperty("销售部门sid")
private String salesDeptSid;
@ApiModelProperty("销售部门")
private String salesDept;
@ApiModelProperty("主管人员sid")
private String mangeSid;
@ApiModelProperty("主管人员")
private String mange;
@ApiModelProperty("销售专员sid")
private String salesmanSid;
@ApiModelProperty("销售专员")
private String salesman;
// private List<AppSalesmanRsk> users = new ArrayList<>();
@ApiModelProperty("备注")
private String remarks;
// private String tempMangeSid;
// private String tempMange;
private String customerSid;
private String customerType;
// private String mobile;
// private String name;
private String customerTypeKey;
// private String addressNss;
// private String idDate;
// private String idNumber;
// private String idType;
private String isGK;
private List<AppStaffVo> staffs = new ArrayList<>();
//企业名称
private String disName;
//统一社会信用代码
private String registNum;
//企业负责人
private String contract;
//联系方式
private String mobile2;
//法定代表人
private String legalName;
//法定代表人
private String registDetailAddress;
@ApiModelProperty("营业执照")
private List<String> license = new ArrayList<>();
@ApiModelProperty("法人和实际控制人身份证")
private List<String> idCard = new ArrayList<>();
@ApiModelProperty("信息查询授权书")
private List<String> infoLetter = new ArrayList<>();
@ApiModelProperty("车队挂靠协议")
private List<String> agreement = new ArrayList<>();
@ApiModelProperty("其他资料")
private List<String> otherInfo = new ArrayList<>();
}

24
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordInitVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.riskcenter.api.loancustomerrecord.app; package com.yxt.anrui.riskcenter.api.loancustomerrecord.app;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.AppStaffVo;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -57,5 +58,28 @@ public class AppCustomerRecordInitVo implements Vo {
private String idNumber; private String idNumber;
private String idType; private String idType;
private String isGK; private String isGK;
private List<AppStaffVo> staffs = new ArrayList<>();
//企业名称
private String disName;
//统一社会信用代码
private String registNum;
//企业负责人
private String contract;
//联系方式
private String mobile2;
//法定代表人
private String legalName;
//法定代表人
private String registDetailAddress;
@ApiModelProperty("营业执照")
private List<String> license = new ArrayList<>();
@ApiModelProperty("法人和实际控制人身份证")
private List<String> idCard = new ArrayList<>();
@ApiModelProperty("信息查询授权书")
private List<String> infoLetter = new ArrayList<>();
@ApiModelProperty("车队挂靠协议")
private List<String> agreement = new ArrayList<>();
@ApiModelProperty("其他资料")
private List<String> otherInfo = new ArrayList<>();
} }

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppSubmitCustomerRecordDto.java

@ -0,0 +1,19 @@
package com.yxt.anrui.riskcenter.api.loancustomerrecord.app;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:22
*/
@Data
public class AppSubmitCustomerRecordDto extends AppCustomerRecordDto {
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
}

24
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecordstaff/AppStaffVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.riskcenter.api.loancustomerrecordstaff;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/10/16 8:31
*/
@Data
public class AppStaffVo implements Vo {
@ApiModelProperty("姓名(陕汽必须字段)")
private String name;
@ApiModelProperty("身份key")
private String identityKey;
@ApiModelProperty("身份value")
private String identityValue;
@ApiModelProperty("联系电话(陕汽必须字段)")
private String mobile;
@ApiModelProperty("身份证号")
private String idCard;
}

19
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordRest.java

@ -5,9 +5,7 @@ import com.yxt.anrui.base.api.basedistributor.app.apply.AppDistributorApplyVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordQuery;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyRecordApply; import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyRecordApply;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
@ -130,4 +128,19 @@ public class LoanCustomerRecordRest implements LoanCustomerRecordFeign {
public ResultBean<AppCustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) { public ResultBean<AppCustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) {
return loanCustomerRecordService.customerRecordInit(sid,orgPath,userSid); return loanCustomerRecordService.customerRecordInit(sid,orgPath,userSid);
} }
@Override
public ResultBean<String> saveCustomerRecord(AppCustomerRecordDto dto) {
return loanCustomerRecordService.saveCustomerRecord(dto);
}
@Override
public ResultBean deleteCustomerRecord(String sid) {
return loanCustomerRecordService.deleteCustomerRecord(sid);
}
@Override
public ResultBean submitCustomerRecord(AppSubmitCustomerRecordDto dto) {
return loanCustomerRecordService.submitCustomerRecord(dto);
}
} }

457
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordService.java

@ -42,11 +42,9 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordQuery;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppSalesmanRsk;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.AppStaffVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaff; import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaff;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffDto; import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffDto;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffVo; import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.LoanCustomerRecordStaffVo;
@ -1084,49 +1082,89 @@ public class LoanCustomerRecordService extends MybatisBaseService<LoanCustomerRe
} }
} }
} }
//查询挂靠公司
if (StringUtils.isNotBlank(entity.getBusinessName())) {
vo.setDisName(entity.getBusinessName());
}
if (StringUtils.isNotBlank(entity.getTaxpayerNo())) {
vo.setRegistNum(entity.getTaxpayerNo());
}
if (StringUtils.isNotBlank(entity.getAddress())) {
vo.setRegistDetailAddress(entity.getAddress());
}
if (StringUtils.isNotBlank(entity.getPhone())) {
vo.setMobile2(entity.getPhone());
}
if (StringUtils.isNotBlank(entity.getLeader())) {
vo.setContract(entity.getLeader());
}
if (StringUtils.isNotBlank(entity.getLegal())) {
vo.setLegalName(entity.getLegal());
}
//查询企业人员信息 //查询企业人员信息
// List<LoanCustomerRecordStaffVo> staffVos = loanCustomerRecordStaffService.getStaffsByMainSid(sid).getData(); List<LoanCustomerRecordStaffVo> staffVos = loanCustomerRecordStaffService.getStaffsByMainSid(sid).getData();
// staffVos.removeAll(Collections.singleton(null)); staffVos.removeAll(Collections.singleton(null));
// if (!staffVos.isEmpty()) { List<AppStaffVo> appStaffVos = new ArrayList<>();
// vo.setStaffs(staffVos); if (!staffVos.isEmpty()) {
// } for (LoanCustomerRecordStaffVo staffVo : staffVos) {
// //信息查询授权书 AppStaffVo appStaffVo = new AppStaffVo();
// List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.INFO_LETTER.getAttachType()); if (StringUtils.isNotBlank(staffVo.getMobile())) {
// fileList.removeAll(Collections.singleton(null)); appStaffVo.setMobile(staffVo.getMobile());
// if (!fileList.isEmpty()) { }
// List<String> infoLetter = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). if (StringUtils.isNotBlank(staffVo.getName())) {
// collect(Collectors.toList()); appStaffVo.setName(staffVo.getName());
// vo.setInfoLetter(infoLetter); }
// } if (StringUtils.isNotBlank(staffVo.getIdentityKey())) {
// //车队挂靠协议 appStaffVo.setIdentityKey(staffVo.getIdentityKey());
// fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.AGREEMENT.getAttachType()); }
// fileList.removeAll(Collections.singleton(null)); if (StringUtils.isNotBlank(staffVo.getIdentityValue())) {
// if (!fileList.isEmpty()) { appStaffVo.setIdentityValue(staffVo.getIdentityValue());
// List<String> agreement = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); }
// vo.setAgreement(agreement); if (StringUtils.isNotBlank(staffVo.getIdNumber())) {
// } appStaffVo.setIdCard(staffVo.getIdNumber());
// //营业执照 }
// fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.LICENSE.getAttachType()); appStaffVos.add(appStaffVo);
// fileList.removeAll(Collections.singleton(null)); }
// if (!fileList.isEmpty()) { }
// List<String> license = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); vo.setStaffs(appStaffVos);
// vo.setLicense(license); //信息查询授权书
// } List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.INFO_LETTER.getAttachType());
// //法人和实际控制人身份证 fileList.removeAll(Collections.singleton(null));
// fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.ID_CARD.getAttachType()); if (!fileList.isEmpty()) {
// fileList.removeAll(Collections.singleton(null)); List<String> infoLetter = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
// if (!fileList.isEmpty()) { collect(Collectors.toList());
// List<String> idCard = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); vo.setInfoLetter(infoLetter);
// vo.setIdCard(idCard); }
// } //车队挂靠协议
// //其他资料 fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.AGREEMENT.getAttachType());
// fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.OTHER_INFO.getAttachType()); fileList.removeAll(Collections.singleton(null));
// fileList.removeAll(Collections.singleton(null)); if (!fileList.isEmpty()) {
// if (!fileList.isEmpty()) { List<String> agreement = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
// List<String> otherInfo = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); vo.setAgreement(agreement);
// vo.setOtherInfo(otherInfo); }
// } //营业执照
// fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.LICENSE.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> license = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setLicense(license);
}
//法人和实际控制人身份证
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.ID_CARD.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> idCard = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setIdCard(idCard);
}
//其他资料
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.OTHER_INFO.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> otherInfo = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setOtherInfo(otherInfo);
}
} else { } else {
vo.setUserSid(userSid); vo.setUserSid(userSid);
vo.setOrgPath(orgPath); vo.setOrgPath(orgPath);
@ -1154,7 +1192,332 @@ public class LoanCustomerRecordService extends MybatisBaseService<LoanCustomerRe
} }
} }
} }
return rb.success().setData(vo); return rb.success().setData(vo);
} }
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> saveCustomerRecord(AppCustomerRecordDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
// 企业开票人员信息
List<AppStaffVo> staffs = dto.getStaffs();
// 营业执照
List<String> license = dto.getLicense();
// 法人和实际控制人身份证
List<String> idCard = dto.getIdCard();
// 信息查询授权书
List<String> infoLetter = dto.getInfoLetter();
// 车队挂靠协议
List<String> agreement = dto.getAgreement();
// 其他资料
List<String> otherInfo = dto.getOtherInfo();
if (StringUtils.isNotBlank(dto.getCustomerTypeKey())) {
if (dto.getCustomerTypeKey().equals("1")) {
dto.setStaffs(new ArrayList<>());
} else if (dto.getCustomerTypeKey().equals("2")) {
dto.setDisName("");
dto.setMobile2("");
dto.setRegistNum("");
dto.setRegistDetailAddress("");
dto.setContract("");
dto.setLegalName("");
}
}
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
LoanCustomerRecord loanCustomerRecord = fetchBySid(sid);
BeanUtil.copyProperties(dto, loanCustomerRecord, "id", "sid");
if (StringUtils.isNotBlank(dto.getSalesmanSid())) {
String salesmanUserSid = dto.getSalesmanSid();
loanCustomerRecord.setSalesUserSid(salesmanUserSid);
SysUserVo data = sysUserFeign.fetchBySid(salesmanUserSid).getData();
if (null != data) {
loanCustomerRecord.setStaffSid(data.getStaffSid());
}
}
if (StringUtils.isNotBlank(dto.getIsGK())) {
loanCustomerRecord.setIsAnchored(dto.getIsGK());
}
if (StringUtils.isNotBlank(dto.getDisName())) {
loanCustomerRecord.setBusinessName(dto.getDisName());
} else {
loanCustomerRecord.setBusinessName("");
}
if (StringUtils.isNotBlank(dto.getRegistNum())) {
loanCustomerRecord.setTaxpayerNo(dto.getRegistNum());
} else {
loanCustomerRecord.setTaxpayerNo("");
}
if (StringUtils.isNotBlank(dto.getMobile2())) {
loanCustomerRecord.setPhone(dto.getMobile2());
} else {
loanCustomerRecord.setPhone("");
}
if (StringUtils.isNotBlank(dto.getRegistDetailAddress())) {
loanCustomerRecord.setAddress(dto.getRegistDetailAddress());
} else {
loanCustomerRecord.setAddress("");
}
if (StringUtils.isNotBlank(dto.getContract())) {
loanCustomerRecord.setLeader(dto.getContract());
} else {
loanCustomerRecord.setLeader("");
}
if (StringUtils.isNotBlank(dto.getLegalName())) {
loanCustomerRecord.setLegal(dto.getLegalName());
} else {
loanCustomerRecord.setLegal("");
}
baseMapper.updateById(loanCustomerRecord);
} else {
LoanCustomerRecord loanCustomerRecord = new LoanCustomerRecord();
sid = loanCustomerRecord.getSid();
BeanUtil.copyProperties(dto, loanCustomerRecord, "id", "sid");
loanCustomerRecord.setOrgSidPath(dto.getOrgPath());
loanCustomerRecord.setCreateBySid(dto.getUserSid());
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath());
if (orgSidByPath.getSuccess()) {
String userOrgSid = orgSidByPath.getData();
loanCustomerRecord.setUseOrgSid(userOrgSid);
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
loanCustomerRecord.setUseOrgName(organizationVoData.getName());
}
}
}
loanCustomerRecord.setNodeState("待提交");
if (StringUtils.isNotBlank(dto.getSalesmanSid())) {
String salesmanUserSid = dto.getSalesmanSid();
loanCustomerRecord.setSalesUserSid(salesmanUserSid);
SysUserVo data = sysUserFeign.fetchBySid(salesmanUserSid).getData();
if (null != data) {
loanCustomerRecord.setStaffSid(data.getStaffSid());
}
}
if (StringUtils.isNotBlank(dto.getIsGK())) {
loanCustomerRecord.setIsAnchored(dto.getIsGK());
}
if (StringUtils.isNotBlank(dto.getDisName())) {
loanCustomerRecord.setBusinessName(dto.getDisName());
} else {
loanCustomerRecord.setBusinessName("");
}
if (StringUtils.isNotBlank(dto.getRegistNum())) {
loanCustomerRecord.setTaxpayerNo(dto.getRegistNum());
} else {
loanCustomerRecord.setTaxpayerNo("");
}
if (StringUtils.isNotBlank(dto.getMobile2())) {
loanCustomerRecord.setPhone(dto.getMobile2());
} else {
loanCustomerRecord.setPhone("");
}
if (StringUtils.isNotBlank(dto.getRegistDetailAddress())) {
loanCustomerRecord.setAddress(dto.getRegistDetailAddress());
} else {
loanCustomerRecord.setAddress("");
}
if (StringUtils.isNotBlank(dto.getContract())) {
loanCustomerRecord.setLeader(dto.getContract());
} else {
loanCustomerRecord.setLeader("");
}
if (StringUtils.isNotBlank(dto.getLegalName())) {
loanCustomerRecord.setLegal(dto.getLegalName());
} else {
loanCustomerRecord.setLegal("");
}
baseMapper.insert(loanCustomerRecord);
}
if (StringUtils.isNotBlank(sid)) {
loanCustomerRecordStaffService.deleteByMainSid(sid);
if (!staffs.isEmpty()) {
for (AppStaffVo staffDto : staffs) {
LoanCustomerRecordStaff staff = new LoanCustomerRecordStaff();
BeanUtil.copyProperties(staffDto, staff, "id", "sid");
staff.setCustomerRecordSid(sid);
if (StringUtils.isNotBlank(staffDto.getIdCard())) {
staff.setIdNumber(staffDto.getIdCard());
}
loanCustomerRecordStaffService.insert(staff);
}
}
//删除附件表中关于该linkSid的文件
loanFileService.deleteByLinkSid(sid);
if (!license.isEmpty()) {
loanFileService.saveAll(sid, license, LoanFileEnum.LICENSE.getAttachType());
}
if (!idCard.isEmpty()) {
loanFileService.saveAll(sid, idCard, LoanFileEnum.ID_CARD.getAttachType());
}
if (!infoLetter.isEmpty()) {
loanFileService.saveAll(sid, infoLetter, LoanFileEnum.INFO_LETTER.getAttachType());
}
if (!agreement.isEmpty()) {
loanFileService.saveAll(sid, agreement, LoanFileEnum.AGREEMENT.getAttachType());
}
if (!otherInfo.isEmpty()) {
loanFileService.saveAll(sid, otherInfo, LoanFileEnum.OTHER_INFO.getAttachType());
}
}
return rb.success().setData(sid);
}
public ResultBean deleteCustomerRecord(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanCustomerRecord loanCustomerRecord = fetchBySid(sid);
if (!loanCustomerRecord.getNodeState().equals("待提交")) {
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
}
loanCustomerRecord.setIsDelete(1);
baseMapper.updateById(loanCustomerRecord);
return rb.success().setMsg("删除成功");
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitAPPBusinessData(AppSubmitCustomerRecordDto dto, LoanCustomerRecord loanCustomerRecord) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (loanCustomerRecord != null) {
String businessTaskId = loanCustomerRecord.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean submitCustomerRecord(AppSubmitCustomerRecordDto dto) {
ResultBean rb = ResultBean.fireFail();
LoanCustomerRecord loanCustomerRecord = fetchBySid(dto.getSid());
int r = submitAPPBusinessData(dto, loanCustomerRecord);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
String businessSid = "";
//新增修改保存
ResultBean<String> resultBean = saveCustomerRecord(dto);
if (resultBean.getSuccess()) {
businessSid = resultBean.getData();
}
LoanCustomerRecord entity = fetchBySid(businessSid);
String orgSidPath = "";
if (StringUtils.isNotBlank(entity.getOrgSidPath())) {
orgSidPath = entity.getOrgSidPath();
} else {
SysUserVo data = sysUserFeign.fetchBySid(entity.getCreateBySid()).getData();
if (null != data) {
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
}
}
List<String> orgPathList = Arrays.asList(orgSidPath.split("/"));
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(orgPathList.get(orgPathList.size() - 1)).getData();
if (sysOrganization == null) {
return rb.setMsg("当前所在的组织机构不存在");
}
if (StringUtils.isBlank(sysOrganization.getManagerSid())) {
// return rb.setMsg("当前所在的组织机构未设置主管人员");
sysOrganization.setManagerSid(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId());
}
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值
Map<String, Object> variables = BeanUtil.beanToMap(dto);
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
variables.put("businessSid", businessSid);
appMap.put("sid", businessSid);
variables.put("app", appMap);
LoanCustomerRecord loanCustomerRecord1 = fetchBySid(businessSid);
String msgBusinessSid = loanCustomerRecord1.getSid();
//用户的部门全路径sid
bv.setOrgSidPath(loanCustomerRecord1.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
String nextNodeUserSids_ = sysOrganization.getManagerSid();
bv.setNextNodeUserSids(nextNodeUserSids_);
//流程定义id
bv.setModelId(ProcDefEnum.LOANCUSTOMERRECORD.getProDefId());
if (r == 1) {
//流程定义id
bv.setModelId(ProcDefEnum.LOANCUSTOMERRECORD.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
int i = updateFlowFiled(BeanUtil.beanToMap(ufVo));
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(msgBusinessSid);
messageFlowableQuery.setModuleName("欠款客户备案");
SysUserVo userVo = sysUserFeign.fetchBySid(loanCustomerRecord1.getCreateBySid()).getData();
if (userVo != null) {
if (StringUtils.isNotBlank(userVo.getName())) {
messageFlowableQuery.setMsgContent(userVo.getName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
}
messageFlowableQuery.setMsgTitle("欠款客户备案");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
LoanCustomerRecord loanCustomerRecord2 = fetchBySid(dto.getSid());
bv.setTaskId(dto.getTaskId());
bv.setTaskDefKey(loanCustomerRecord2.getNodeSid());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
} }

82
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordDto.java

@ -0,0 +1,82 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:08
*/
@Data
public class CustomerRecordDto implements Dto {
private String sid;
private String userSid;
private String orgPath;
// private String publishInfo;
// private String taskId;
// private String procInsId;
@ApiModelProperty("申请人")
private String applyName;
@ApiModelProperty("申请日期")
private String applyDate;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String dept;
@ApiModelProperty("销售部门sid")
private String salesDeptSid;
@ApiModelProperty("销售部门")
private String salesDept;
@ApiModelProperty("主管人员sid")
private String mangeSid;
@ApiModelProperty("主管人员")
private String mange;
@ApiModelProperty("销售专员sid")
private String salesmanSid;
@ApiModelProperty("销售专员")
private String salesman;
// private List<AppSalesmanRsk> users = new ArrayList<>();
@ApiModelProperty("备注")
private String remarks;
// private String tempMangeSid;
// private String tempMange;
private String customerSid;
private String customerType;
// private String mobile;
// private String name;
private String customerTypeKey;
// private String addressNss;
// private String idDate;
// private String idNumber;
// private String idType;
private String isGK;
private List<StaffVo> staffs = new ArrayList<>();
//企业名称
private String disName;
//统一社会信用代码
private String registNum;
//企业负责人
private String contract;
//联系方式
private String mobile2;
//法定代表人
private String legalName;
//法定代表人
private String registDetailAddress;
@ApiModelProperty("营业执照")
private List<String> license = new ArrayList<>();
@ApiModelProperty("法人和实际控制人身份证")
private List<String> idCard = new ArrayList<>();
@ApiModelProperty("信息查询授权书")
private List<String> infoLetter = new ArrayList<>();
@ApiModelProperty("车队挂靠协议")
private List<String> agreement = new ArrayList<>();
@ApiModelProperty("其他资料")
private List<String> otherInfo = new ArrayList<>();
}

56
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeign.java

@ -1,18 +1,18 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord; package com.yxt.anrui.terminal.api.risk.loancustomerrecord;
import com.yxt.anrui.terminal.api.autoservice.distributor.DisDetailsVo; import com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow.*;
import com.yxt.anrui.terminal.api.autoservice.distributor.DistributorQuery;
import com.yxt.anrui.terminal.api.autoservice.distributor.apply.DistributorApplyVo;
import com.yxt.anrui.terminal.api.risk.loantemplate.TemplateFeignFallback;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/** /**
* @description: * @description:
* @author: fzz * @author: fzz
@ -37,4 +37,52 @@ public interface CustomerRecordFeign {
@ResponseBody @ResponseBody
ResultBean<CustomerRecordInitVo> customerRecordInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid); ResultBean<CustomerRecordInitVo> customerRecordInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid);
@ApiOperation("移动端-欠款客户备案新增修改")
@PostMapping("/saveCustomerRecord")
@ResponseBody
ResultBean<String> saveCustomerRecord(@RequestBody CustomerRecordDto dto);
@ApiOperation("移动端-欠款客户备案删除")
@DeleteMapping("/deleteCustomerRecord/{sid}")
@ResponseBody
ResultBean deleteCustomerRecord(@PathVariable("sid") String sid);
//-------------------------流程-----------------------------------------
@ApiOperation("提交流程")
@PostMapping("/submitCustomerRecord")
@ResponseBody
ResultBean submitCustomerRecord(@Valid @RequestBody SubmitCustomerRecordDto dto);
@ApiOperation("办理")
@PutMapping("/agreeCustomerRecord")
@ResponseBody
ResultBean agreeCustomerRecord(@Valid @RequestBody CompleteCustomerRecordDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectCustomerRecord")
@ResponseBody
ResultBean rejectCustomerRecord(@Valid @RequestBody AppCustomerRecordTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallCustomerRecord")
@ResponseBody
ResultBean recallCustomerRecord(@Valid @RequestBody AppCustomerRecordTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopCustomerRecord")
@ResponseBody
ResultBean stopCustomerRecord(@Valid @RequestBody AppCustomerRecordTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap CustomerRecordFlowableQuery query);
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppCustomerRecordDelegateQuery delegateQuery);
} }

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeignFallback.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord; package com.yxt.anrui.terminal.api.risk.loancustomerrecord;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -21,4 +22,49 @@ public class CustomerRecordFeignFallback implements CustomerRecordFeign {
public ResultBean<CustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) { public ResultBean<CustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) {
return null; return null;
} }
@Override
public ResultBean<String> saveCustomerRecord(CustomerRecordDto dto) {
return null;
}
@Override
public ResultBean deleteCustomerRecord(String sid) {
return null;
}
@Override
public ResultBean submitCustomerRecord(SubmitCustomerRecordDto dto) {
return null;
}
@Override
public ResultBean agreeCustomerRecord(CompleteCustomerRecordDto dto) {
return null;
}
@Override
public ResultBean rejectCustomerRecord(AppCustomerRecordTaskQuery query) {
return null;
}
@Override
public ResultBean recallCustomerRecord(AppCustomerRecordTaskQuery query) {
return null;
}
@Override
public ResultBean stopCustomerRecord(AppCustomerRecordTaskQuery query) {
return null;
}
@Override
public ResultBean<String> getFlowOperateTitle(CustomerRecordFlowableQuery query) {
return null;
}
@Override
public ResultBean delegate(AppCustomerRecordDelegateQuery delegateQuery) {
return null;
}
} }

43
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordInitVo.java

@ -17,6 +17,11 @@ import java.util.List;
public class CustomerRecordInitVo implements Vo { public class CustomerRecordInitVo implements Vo {
private String sid; private String sid;
private String userSid;
private String orgPath;
private String publishInfo;
private String taskId;
private String procInsId;
@ApiModelProperty("申请人") @ApiModelProperty("申请人")
private String applyName; private String applyName;
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")
@ -37,13 +42,45 @@ public class CustomerRecordInitVo implements Vo {
private String salesmanSid; private String salesmanSid;
@ApiModelProperty("销售专员") @ApiModelProperty("销售专员")
private String salesman; private String salesman;
private List<SalesmanRsk> users = new ArrayList<>();
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remarks; private String remarks;
private String tempMangeSid; private String tempMangeSid;
private String tempMange; private String tempMange;
private String taskId;
private String procInsId; private String customerSid;
private List<Salesman> users = new ArrayList<>(); private String customerType;
private String mobile;
private String name;
private String customerTypeKey;
private String addressNss;
private String idDate;
private String idNumber;
private String idType;
private String isGK;
private List<StaffVo> staffs = new ArrayList<>();
//企业名称
private String disName;
//统一社会信用代码
private String registNum;
//企业负责人
private String contract;
//联系方式
private String mobile2;
//法定代表人
private String legalName;
//法定代表人
private String registDetailAddress;
@ApiModelProperty("营业执照")
private List<String> license = new ArrayList<>();
@ApiModelProperty("法人和实际控制人身份证")
private List<String> idCard = new ArrayList<>();
@ApiModelProperty("信息查询授权书")
private List<String> infoLetter = new ArrayList<>();
@ApiModelProperty("车队挂靠协议")
private List<String> agreement = new ArrayList<>();
@ApiModelProperty("其他资料")
private List<String> otherInfo = new ArrayList<>();
} }

24
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/SalesmanRsk.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:10
*/
@Data
public class SalesmanRsk {
private String sid;
private String checkSid;
// 必须有 一般sid
private String dictKey;
private boolean selected;
//必须有 显示的文字
private String dictValue;
private boolean mandatory;
private String dictType;
private String extra;
//额外的内容;
private Object extra2;
}

24
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/StaffVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/10/16 8:31
*/
@Data
public class StaffVo implements Vo {
@ApiModelProperty("姓名(陕汽必须字段)")
private String name;
@ApiModelProperty("身份key")
private String identityKey;
@ApiModelProperty("身份value")
private String identityValue;
@ApiModelProperty("联系电话(陕汽必须字段)")
private String mobile;
@ApiModelProperty("身份证号")
private String idCard;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordDelegateQuery.java

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

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordTaskQuery.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:14
*/
@Data
public class AppCustomerRecordTaskQuery implements Query {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

35
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CompleteCustomerRecordDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:13
*/
@Data
public class CompleteCustomerRecordDto implements Dto {
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

21
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CustomerRecordFlowableQuery.java

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

18
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/SubmitCustomerRecordDto.java

@ -0,0 +1,18 @@
package com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordDto;
import io.swagger.annotations.ApiModelProperty;
/**
* @author Administrator
* @description
* @date 2023/10/17 9:06
*/
public class SubmitCustomerRecordDto extends CustomerRecordDto {
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程实例id")
@JsonProperty("procInsId")
private String instanceId;
}

53
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordRest.java

@ -1,10 +1,8 @@
package com.yxt.anrui.terminal.biz.risk.loancustomerrecord; package com.yxt.anrui.terminal.biz.risk.loancustomerrecord;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordFeign; import com.yxt.anrui.terminal.api.risk.loancustomerrecord.*;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordInitVo; import com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow.*;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordQuery;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordVo;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -31,6 +29,51 @@ public class CustomerRecordRest implements CustomerRecordFeign {
@Override @Override
public ResultBean<CustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) { public ResultBean<CustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) {
return null; return customerRecordService.customerRecordInit(sid,orgPath,userSid);
}
@Override
public ResultBean<String> saveCustomerRecord(CustomerRecordDto dto) {
return customerRecordService.saveCustomerRecord(dto);
}
@Override
public ResultBean deleteCustomerRecord(String sid) {
return customerRecordService.deleteCustomerRecord(sid);
}
@Override
public ResultBean submitCustomerRecord(SubmitCustomerRecordDto dto) {
return customerRecordService.submitCustomerRecord(dto);
}
@Override
public ResultBean agreeCustomerRecord(CompleteCustomerRecordDto dto) {
return customerRecordService.agreeCustomerRecord(dto);
}
@Override
public ResultBean rejectCustomerRecord(AppCustomerRecordTaskQuery query) {
return customerRecordService.rejectCustomerRecord(query);
}
@Override
public ResultBean recallCustomerRecord(AppCustomerRecordTaskQuery query) {
return customerRecordService.recallCustomerRecord(query);
}
@Override
public ResultBean stopCustomerRecord(AppCustomerRecordTaskQuery query) {
return customerRecordService.stopCustomerRecord(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(CustomerRecordFlowableQuery query) {
return customerRecordService.getFlowOperateTitle(query);
}
@Override
public ResultBean delegate(AppCustomerRecordDelegateQuery delegateQuery) {
return customerRecordService.delegate(delegateQuery);
} }
} }

161
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordService.java

@ -2,14 +2,20 @@ package com.yxt.anrui.terminal.biz.risk.loancustomerrecord;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.basedistributor.app.BaseDistributorsQuery; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.base.api.basedistributor.app.apply.AppDistributorApplyVo; 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.loancustomerrecord.LoanCustomerRecordFeign; import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordFeign;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordQuery; import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordCompleteDto;
import com.yxt.anrui.terminal.api.autoservice.distributor.apply.DistributorApplyVo; import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordDelegateQuery;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordTaskQuery;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordDto;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordInitVo;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordQuery; import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordQuery;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordVo; import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordVo;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
@ -29,6 +35,10 @@ public class CustomerRecordService {
@Autowired @Autowired
private LoanCustomerRecordFeign loanCustomerRecordFeign; private LoanCustomerRecordFeign loanCustomerRecordFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean<PagerVo<CustomerRecordVo>> getCustomerRecordList(PagerQuery<CustomerRecordQuery> pagerQuery) { public ResultBean<PagerVo<CustomerRecordVo>> getCustomerRecordList(PagerQuery<CustomerRecordQuery> pagerQuery) {
ResultBean<PagerVo<CustomerRecordVo>> rb = ResultBean.fireFail(); ResultBean<PagerVo<CustomerRecordVo>> rb = ResultBean.fireFail();
@ -41,4 +51,145 @@ public class CustomerRecordService {
} }
return rb.success().setData(pagerVo); return rb.success().setData(pagerVo);
} }
public ResultBean<CustomerRecordInitVo> customerRecordInit(String sid, String orgPath, String userSid) {
ResultBean<CustomerRecordInitVo> rb = ResultBean.fireFail();
ResultBean<AppCustomerRecordInitVo> resultBean = loanCustomerRecordFeign.customerRecordInit(sid, orgPath, userSid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
CustomerRecordInitVo vo = new CustomerRecordInitVo();
BeanUtil.copyProperties(resultBean.getData(), vo);
return rb.success().setData(vo);
}
public ResultBean<String> saveCustomerRecord(CustomerRecordDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
AppCustomerRecordDto appCustomerRecordDto = new
AppCustomerRecordDto();
BeanUtil.copyProperties(dto, appCustomerRecordDto);
ResultBean<String> resultBean = loanCustomerRecordFeign.saveCustomerRecord(appCustomerRecordDto);
if (resultBean.getSuccess()) {
rb.success().setData(resultBean.getData());
}
return rb.success();
}
public ResultBean deleteCustomerRecord(String sid) {
ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = loanCustomerRecordFeign.deleteCustomerRecord(sid);
return rb.success();
}
public ResultBean submitCustomerRecord(SubmitCustomerRecordDto dto) {
ResultBean rb = ResultBean.fireFail();
AppSubmitCustomerRecordDto submitCustomerRecordDto = new AppSubmitCustomerRecordDto();
BeanUtil.copyProperties(dto, submitCustomerRecordDto);
ResultBean resultBean = loanCustomerRecordFeign.submitCustomerRecord(submitCustomerRecordDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success();
}
public ResultBean agreeCustomerRecord(CompleteCustomerRecordDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
CustomerRecordCompleteDto customerRecordCompleteDto = new
CustomerRecordCompleteDto();
BeanUtil.copyProperties(dto, customerRecordCompleteDto);
customerRecordCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = loanCustomerRecordFeign.complete(customerRecordCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectCustomerRecord(AppCustomerRecordTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
CustomerRecordTaskQuery taskQuery = new
CustomerRecordTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanCustomerRecordFeign.taskReject(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallCustomerRecord(AppCustomerRecordTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
CustomerRecordTaskQuery taskQuery = new
CustomerRecordTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanCustomerRecordFeign.revokeProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopCustomerRecord(AppCustomerRecordTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
CustomerRecordTaskQuery taskQuery = new
CustomerRecordTaskQuery();
BeanUtil.copyProperties(query, taskQuery);
ResultBean resultBean = loanCustomerRecordFeign.breakProcess(taskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(CustomerRecordFlowableQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.GetNodeQuery getNodeQuery = new com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.GetNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.GetNodeVo>> getPreviousNodesForReject = loanCustomerRecordFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.GetNodeVo>> getNextNodesForSubmit = loanCustomerRecordFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
public ResultBean delegate(AppCustomerRecordDelegateQuery delegateQuery) {
ResultBean rb = ResultBean.fireFail();
CustomerRecordDelegateQuery delegateQuery1 = new
CustomerRecordDelegateQuery();
BeanUtil.copyProperties(delegateQuery, delegateQuery1);
ResultBean delegate = loanCustomerRecordFeign.delegate(delegateQuery1);
return rb.success();
}
} }

Loading…
Cancel
Save