diff --git a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempVo.java b/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempVo.java index 066739f6f9..d1ea3bf575 100644 --- a/anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/AppCrmCustomerTempVo.java +++ b/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; diff --git a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml b/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml index 84c6f942bf..7297f70e80 100644 --- a/anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempMapper.xml +++ b/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, diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeign.java index 4bca78a01e..da1a855989 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeign.java +++ b/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 customerRecordInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid); + @ApiOperation("移动端-欠款客户备案新增修改") + @PostMapping("/saveCustomerRecord") + @ResponseBody + ResultBean 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); + } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeignFallback.java index f567722d54..b03d329cee 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/LoanCustomerRecordFeignFallback.java +++ b/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 customerRecordInit(String sid, String orgPath, String userSid) { return null; } + + @Override + public ResultBean saveCustomerRecord(AppCustomerRecordDto dto) { + return null; + } + + @Override + public ResultBean deleteCustomerRecord(String sid) { + return null; + } + + @Override + public ResultBean submitCustomerRecord(AppSubmitCustomerRecordDto dto) { + return null; + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordDto.java new file mode 100644 index 0000000000..ad9428fc45 --- /dev/null +++ b/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 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 staffs = new ArrayList<>(); + //企业名称 + private String disName; + //统一社会信用代码 + private String registNum; + //企业负责人 + private String contract; + //联系方式 + private String mobile2; + //法定代表人 + private String legalName; + //法定代表人 + private String registDetailAddress; + @ApiModelProperty("营业执照") + private List license = new ArrayList<>(); + @ApiModelProperty("法人和实际控制人身份证") + private List idCard = new ArrayList<>(); + @ApiModelProperty("信息查询授权书") + private List infoLetter = new ArrayList<>(); + @ApiModelProperty("车队挂靠协议") + private List agreement = new ArrayList<>(); + @ApiModelProperty("其他资料") + private List otherInfo = new ArrayList<>(); + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordInitVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordInitVo.java index 557a533103..9113f84a9f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppCustomerRecordInitVo.java +++ b/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 staffs = new ArrayList<>(); + //企业名称 + private String disName; + //统一社会信用代码 + private String registNum; + //企业负责人 + private String contract; + //联系方式 + private String mobile2; + //法定代表人 + private String legalName; + //法定代表人 + private String registDetailAddress; + @ApiModelProperty("营业执照") + private List license = new ArrayList<>(); + @ApiModelProperty("法人和实际控制人身份证") + private List idCard = new ArrayList<>(); + @ApiModelProperty("信息查询授权书") + private List infoLetter = new ArrayList<>(); + @ApiModelProperty("车队挂靠协议") + private List agreement = new ArrayList<>(); + @ApiModelProperty("其他资料") + private List otherInfo = new ArrayList<>(); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppSubmitCustomerRecordDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecord/app/AppSubmitCustomerRecordDto.java new file mode 100644 index 0000000000..9a905e130a --- /dev/null +++ b/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; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecordstaff/AppStaffVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loancustomerrecordstaff/AppStaffVo.java new file mode 100644 index 0000000000..32e89f91fc --- /dev/null +++ b/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; +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordRest.java index 60e68cf310..6293675965 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordRest.java +++ b/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 customerRecordInit(String sid, String orgPath, String userSid) { return loanCustomerRecordService.customerRecordInit(sid,orgPath,userSid); } + + @Override + public ResultBean 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); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordService.java index 68c9c34060..a26d21ee0f 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancustomerrecord/LoanCustomerRecordService.java +++ b/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 staffVos = loanCustomerRecordStaffService.getStaffsByMainSid(sid).getData(); -// staffVos.removeAll(Collections.singleton(null)); -// if (!staffVos.isEmpty()) { -// vo.setStaffs(staffVos); -// } -// //信息查询授权书 -// List fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.INFO_LETTER.getAttachType()); -// fileList.removeAll(Collections.singleton(null)); -// if (!fileList.isEmpty()) { -// List 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 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 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 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 otherInfo = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); -// vo.setOtherInfo(otherInfo); -// } -// + List staffVos = loanCustomerRecordStaffService.getStaffsByMainSid(sid).getData(); + staffVos.removeAll(Collections.singleton(null)); + List 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 fileList = loanFileService.selectByLinkSid(sid, LoanFileEnum.INFO_LETTER.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List 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 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 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 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 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 saveCustomerRecord(AppCustomerRecordDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; +// 企业开票人员信息 + List staffs = dto.getStaffs(); +// 营业执照 + List license = dto.getLicense(); +// 法人和实际控制人身份证 + List idCard = dto.getIdCard(); +// 信息查询授权书 + List infoLetter = dto.getInfoLetter(); +// 车队挂靠协议 + List agreement = dto.getAgreement(); +// 其他资料 + List 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 orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()); + if (orgSidByPath.getSuccess()) { + String userOrgSid = orgSidByPath.getData(); + loanCustomerRecord.setUseOrgSid(userOrgSid); + ResultBean 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 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 staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(data.getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + } + } + List 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 variables = BeanUtil.beanToMap(dto); + Map 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 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(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 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; + } } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordDto.java new file mode 100644 index 0000000000..1e649e0e63 --- /dev/null +++ b/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 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 staffs = new ArrayList<>(); + //企业名称 + private String disName; + //统一社会信用代码 + private String registNum; + //企业负责人 + private String contract; + //联系方式 + private String mobile2; + //法定代表人 + private String legalName; + //法定代表人 + private String registDetailAddress; + @ApiModelProperty("营业执照") + private List license = new ArrayList<>(); + @ApiModelProperty("法人和实际控制人身份证") + private List idCard = new ArrayList<>(); + @ApiModelProperty("信息查询授权书") + private List infoLetter = new ArrayList<>(); + @ApiModelProperty("车队挂靠协议") + private List agreement = new ArrayList<>(); + @ApiModelProperty("其他资料") + private List otherInfo = new ArrayList<>(); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeign.java index e8fdb55cf7..c64b376851 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeign.java +++ b/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 customerRecordInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid); + + @ApiOperation("移动端-欠款客户备案新增修改") + @PostMapping("/saveCustomerRecord") + @ResponseBody + ResultBean 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 getFlowOperateTitle(@Valid @SpringQueryMap CustomerRecordFlowableQuery query); + + @ApiOperation(value = "加签") + @PutMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody AppCustomerRecordDelegateQuery delegateQuery); } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeignFallback.java index 993f5e6cb6..2937516f53 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordFeignFallback.java +++ b/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 customerRecordInit(String sid, String orgPath, String userSid) { return null; } + + @Override + public ResultBean 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 getFlowOperateTitle(CustomerRecordFlowableQuery query) { + return null; + } + + @Override + public ResultBean delegate(AppCustomerRecordDelegateQuery delegateQuery) { + return null; + } } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordInitVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordInitVo.java index 51a4b0eb28..8bba4c7f55 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/CustomerRecordInitVo.java +++ b/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 users = new ArrayList<>(); @ApiModelProperty("备注") private String remarks; private String tempMangeSid; private String tempMange; - private String taskId; - private String procInsId; - private List 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 staffs = new ArrayList<>(); + //企业名称 + private String disName; + //统一社会信用代码 + private String registNum; + //企业负责人 + private String contract; + //联系方式 + private String mobile2; + //法定代表人 + private String legalName; + //法定代表人 + private String registDetailAddress; + @ApiModelProperty("营业执照") + private List license = new ArrayList<>(); + @ApiModelProperty("法人和实际控制人身份证") + private List idCard = new ArrayList<>(); + @ApiModelProperty("信息查询授权书") + private List infoLetter = new ArrayList<>(); + @ApiModelProperty("车队挂靠协议") + private List agreement = new ArrayList<>(); + @ApiModelProperty("其他资料") + private List otherInfo = new ArrayList<>(); } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/SalesmanRsk.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/SalesmanRsk.java new file mode 100644 index 0000000000..c5876895b0 --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/StaffVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/StaffVo.java new file mode 100644 index 0000000000..fae0b8d78d --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordDelegateQuery.java new file mode 100644 index 0000000000..43c3a4d33b --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/AppCustomerRecordTaskQuery.java new file mode 100644 index 0000000000..bdc9883942 --- /dev/null +++ b/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; + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CompleteCustomerRecordDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CompleteCustomerRecordDto.java new file mode 100644 index 0000000000..110bc237b0 --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CustomerRecordFlowableQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/CustomerRecordFlowableQuery.java new file mode 100644 index 0000000000..7f24b8fea5 --- /dev/null +++ b/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; + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/SubmitCustomerRecordDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loancustomerrecord/flow/SubmitCustomerRecordDto.java new file mode 100644 index 0000000000..2bfbe56765 --- /dev/null +++ b/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; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordRest.java index 6a7aafa9d4..e174924ff7 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordRest.java +++ b/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 customerRecordInit(String sid, String orgPath, String userSid) { - return null; + return customerRecordService.customerRecordInit(sid,orgPath,userSid); + } + + @Override + public ResultBean 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 getFlowOperateTitle(CustomerRecordFlowableQuery query) { + return customerRecordService.getFlowOperateTitle(query); + } + + @Override + public ResultBean delegate(AppCustomerRecordDelegateQuery delegateQuery) { + return customerRecordService.delegate(delegateQuery); } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordService.java index a3c57136ad..f092e943e8 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loancustomerrecord/CustomerRecordService.java +++ b/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> getCustomerRecordList(PagerQuery pagerQuery) { ResultBean> rb = ResultBean.fireFail(); @@ -41,4 +51,145 @@ public class CustomerRecordService { } return rb.success().setData(pagerVo); } + + public ResultBean customerRecordInit(String sid, String orgPath, String userSid) { + ResultBean rb = ResultBean.fireFail(); + ResultBean 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 saveCustomerRecord(CustomerRecordDto dto) { + ResultBean rb = ResultBean.fireFail(); + AppCustomerRecordDto appCustomerRecordDto = new + AppCustomerRecordDto(); + BeanUtil.copyProperties(dto, appCustomerRecordDto); + ResultBean 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 userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean 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 getFlowOperateTitle(CustomerRecordFlowableQuery query) { + ResultBean 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> 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> 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(); + } }