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;
@ApiModelProperty("证件类型")
private String idType;
@ApiModelProperty("证件类型key")
private String idTypeKey;
@ApiModelProperty("证件号码")
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.IDNumber as idNumber,
cct.certificateType as idType,
cct.certificateTypeKey as idTypeKey,
cct.province as province,
cct.city as city,
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;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo;
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.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -60,6 +58,7 @@ public interface LoanCustomerRecordFeign {
/**
* 保存修改
*
* @param
*/
@ApiOperation("保存修改")
@ -69,6 +68,7 @@ public interface LoanCustomerRecordFeign {
/**
* 查询挂靠公司
*
* @param
*/
@ApiOperation("查询挂靠公司")
@ -136,4 +136,18 @@ public interface LoanCustomerRecordFeign {
@ResponseBody
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;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo;
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.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery;
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) {
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;
import com.yxt.anrui.riskcenter.api.loancustomerrecordstaff.AppStaffVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -57,5 +58,28 @@ public class AppCustomerRecordInitVo implements Vo {
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<>();
}

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.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordInitVo;
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.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.*;
import com.yxt.anrui.riskcenter.api.loanfinpolicyrecordapply.LoanFinPolicyRecordApply;
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) {
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.app.AppCustomerRecordInitVo;
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.app.*;
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.LoanCustomerRecordStaffDto;
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();
// staffVos.removeAll(Collections.singleton(null));
// if (!staffVos.isEmpty()) {
// vo.setStaffs(staffVos);
// }
// //信息查询授权书
// List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.INFO_LETTER.getAttachType());
// fileList.removeAll(Collections.singleton(null));
// if (!fileList.isEmpty()) {
// List<String> infoLetter = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
// collect(Collectors.toList());
// vo.setInfoLetter(infoLetter);
// }
// //车队挂靠协议
// fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.AGREEMENT.getAttachType());
// fileList.removeAll(Collections.singleton(null));
// if (!fileList.isEmpty()) {
// List<String> agreement = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
// vo.setAgreement(agreement);
// }
// //营业执照
// 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);
// }
//
List<LoanCustomerRecordStaffVo> staffVos = loanCustomerRecordStaffService.getStaffsByMainSid(sid).getData();
staffVos.removeAll(Collections.singleton(null));
List<AppStaffVo> appStaffVos = new ArrayList<>();
if (!staffVos.isEmpty()) {
for (LoanCustomerRecordStaffVo staffVo : staffVos) {
AppStaffVo appStaffVo = new AppStaffVo();
if (StringUtils.isNotBlank(staffVo.getMobile())) {
appStaffVo.setMobile(staffVo.getMobile());
}
if (StringUtils.isNotBlank(staffVo.getName())) {
appStaffVo.setName(staffVo.getName());
}
if (StringUtils.isNotBlank(staffVo.getIdentityKey())) {
appStaffVo.setIdentityKey(staffVo.getIdentityKey());
}
if (StringUtils.isNotBlank(staffVo.getIdentityValue())) {
appStaffVo.setIdentityValue(staffVo.getIdentityValue());
}
if (StringUtils.isNotBlank(staffVo.getIdNumber())) {
appStaffVo.setIdCard(staffVo.getIdNumber());
}
appStaffVos.add(appStaffVo);
}
}
vo.setStaffs(appStaffVos);
//信息查询授权书
List<LoanFile> fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.INFO_LETTER.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> infoLetter = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
vo.setInfoLetter(infoLetter);
}
//车队挂靠协议
fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.AGREEMENT.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> agreement = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
vo.setAgreement(agreement);
}
//营业执照
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 {
vo.setUserSid(userSid);
vo.setOrgPath(orgPath);
@ -1154,7 +1192,332 @@ public class LoanCustomerRecordService extends MybatisBaseService<LoanCustomerRe
}
}
}
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;
import com.yxt.anrui.terminal.api.autoservice.distributor.DisDetailsVo;
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.anrui.terminal.api.risk.loancustomerrecord.flow.*;
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.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @description:
* @author: fzz
@ -37,4 +37,52 @@ public interface CustomerRecordFeign {
@ResponseBody
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;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
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) {
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 {
private String sid;
private String userSid;
private String orgPath;
private String publishInfo;
private String taskId;
private String procInsId;
@ApiModelProperty("申请人")
private String applyName;
@ApiModelProperty("申请日期")
@ -37,13 +42,45 @@ public class CustomerRecordInitVo implements Vo {
private String salesmanSid;
@ApiModelProperty("销售专员")
private String salesman;
private List<SalesmanRsk> users = new ArrayList<>();
@ApiModelProperty("备注")
private String remarks;
private String tempMangeSid;
private String tempMange;
private String taskId;
private String procInsId;
private List<Salesman> users = new ArrayList<>();
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<>();
}

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;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.CustomerRecordFeign;
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.CustomerRecordVo;
import 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.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -31,6 +29,51 @@ public class CustomerRecordRest implements CustomerRecordFeign {
@Override
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 com.yxt.anrui.base.api.basedistributor.app.BaseDistributorsQuery;
import com.yxt.anrui.base.api.basedistributor.app.apply.AppDistributorApplyVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.LoanCustomerRecordFeign;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordQuery;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.AppCustomerRecordVo;
import com.yxt.anrui.terminal.api.autoservice.distributor.apply.DistributorApplyVo;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.app.*;
import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordCompleteDto;
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.CustomerRecordVo;
import com.yxt.anrui.terminal.api.risk.loancustomerrecord.flow.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -29,6 +35,10 @@ public class CustomerRecordService {
@Autowired
private LoanCustomerRecordFeign loanCustomerRecordFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean<PagerVo<CustomerRecordVo>> getCustomerRecordList(PagerQuery<CustomerRecordQuery> pagerQuery) {
ResultBean<PagerVo<CustomerRecordVo>> rb = ResultBean.fireFail();
@ -41,4 +51,145 @@ public class CustomerRecordService {
}
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