init
This commit is contained in:
78
ibs/pom.xml
Normal file
78
ibs/pom.xml
Normal file
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<version>3.8.8</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>ibs</artifactId>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- Mockito依赖 -->
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>3.3.3</version> <!-- 请根据需要选择合适的版本 -->
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- JUnit依赖 -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version> <!-- 请根据需要选择合适的版本 -->
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- 通用工具-->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.locationtech.jts</groupId>
|
||||
<artifactId>jts-core</artifactId>
|
||||
<version>1.18.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
<version>5.3.31</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.postgresql</groupId>-->
|
||||
<!-- <artifactId>postgresql</artifactId>-->
|
||||
<!-- <version>42.3.3</version>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-system</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel-core</artifactId>
|
||||
<version>3.3.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.opencsv</groupId>
|
||||
<artifactId>opencsv</artifactId>
|
||||
<version>5.2</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.ruoyi.ibs.cmpm.controller;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataPageInfo;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.CustLevelDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.CustManagerDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.UserDeptDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailCustLevelManagerDetailVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailResultVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmVO;
|
||||
import com.ruoyi.ibs.cmpm.service.GridCmpmCustService;
|
||||
import com.ruoyi.ibs.cmpm.service.GridCmpmService;
|
||||
import com.ruoyi.ibs.cmpm.service.GridCmpmTransferService;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustBaseInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/20
|
||||
**/
|
||||
@Api(tags = "绩效网格")
|
||||
@RestController
|
||||
@RequestMapping("/grid/cmpm")
|
||||
public class GridCmpmController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private GridCmpmService gridCmpmService;
|
||||
|
||||
@Resource
|
||||
private GridCmpmCustService gridCmpmCustService;
|
||||
|
||||
@Resource
|
||||
private GridCmpmTransferService gridCmpmTransferService;
|
||||
|
||||
@GetMapping("/list")
|
||||
@Log(title = "绩效网格-查询绩效网格列表")
|
||||
@ApiOperation("查询绩效网格列表")
|
||||
public TableDataPageInfo selectManageList(GridCmpmListDTO gridCmpmListDTO) {
|
||||
Page<Object> page = startPage();
|
||||
List<GridCmpmVO> gridCmpmVOS = gridCmpmService.selectManageList(gridCmpmListDTO);
|
||||
return getDataTable(gridCmpmVOS, page);
|
||||
}
|
||||
|
||||
@GetMapping("/common/list")
|
||||
@Log(title = "绩效网格-查询绩效网格公共池列表")
|
||||
@ApiOperation("查询绩效网格公共池列表")
|
||||
public TableDataPageInfo selectCommonList(GridCmpmListDTO gridCmpmListDTO) {
|
||||
UserDeptDTO userDeptDTO = gridCmpmTransferService.getUserDeptDTO(SecurityUtils.getUsername());
|
||||
if (Objects.nonNull(userDeptDTO.getBranchId())){
|
||||
gridCmpmListDTO.setBranchId(userDeptDTO.getBranchId());
|
||||
}
|
||||
Page<Object> page = startPage();
|
||||
List<GridCmpmVO> gridCmpmVOS = gridCmpmService.selectCommonList(gridCmpmListDTO);
|
||||
return getDataTable(gridCmpmVOS, page);
|
||||
}
|
||||
|
||||
@GetMapping("/cust/level")
|
||||
@Log(title = "绩效网格-查询客户分层等级")
|
||||
@ApiOperation("查询客户分层等级")
|
||||
public AjaxResult custLevel(CustLevelDTO custLevelDTO) {
|
||||
return success(gridCmpmService.getCustLevelByCust(custLevelDTO));
|
||||
}
|
||||
|
||||
@GetMapping("/cust/list/tag")
|
||||
@Log(title = "绩效网格-查询客户分层等级下拉框")
|
||||
@ApiOperation("查询客户分层等级下拉框")
|
||||
@ApiImplicitParam(name = "gridType", value = "零售retail 对公corporate 对公账户corporate_account", required = true, dataType = "String")
|
||||
public AjaxResult custLevelListTag(@RequestParam String gridType) {
|
||||
return success(gridCmpmService.getAllCustLevel(gridType));
|
||||
}
|
||||
|
||||
@GetMapping("/custManagerList")
|
||||
@Log(title = "绩效网格-查询管户报表")
|
||||
@ApiOperation("查询管户报表")
|
||||
public TableDataPageInfo selectCustManagerList(CustManagerDTO custManagerDTO) {
|
||||
Page<Object> page = startPage();
|
||||
List<DwbRetailCustLevelManagerDetailVO> gridCmpmVOS = gridCmpmService.selectCustManagerList(custManagerDTO);
|
||||
return getDataTable(gridCmpmVOS, page);
|
||||
}
|
||||
|
||||
@GetMapping("/custManager/result")
|
||||
@Log(title = "绩效网格-管户报表统计")
|
||||
@ApiOperation("管户报表统计")
|
||||
public DwbRetailResultVO selectCustManagerResult() {
|
||||
return gridCmpmService.selectCustManagerResult();
|
||||
}
|
||||
|
||||
@GetMapping("/custLevel/count")
|
||||
@Log(title = "绩效网格-查询客户分层等级")
|
||||
@ApiOperation("查询客户分层等级")
|
||||
public AjaxResult custLevelCount(CustManagerDTO custManagerDTO) {
|
||||
return success(gridCmpmService.custLevelCount(custManagerDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/custBaseInfo/list")
|
||||
@Log(title = "绩效网格-我的客户绩效网格查询")
|
||||
@ApiOperation("我的客户绩效网格查询")
|
||||
public AjaxResult selectCustBaseInfoList(@RequestBody CustBaseInfo custBaseInfo) {
|
||||
return AjaxResult.success( gridCmpmCustService.selectCustInfoList (custBaseInfo)) ;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.ibs.cmpm.controller;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataPageInfo;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.*;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmClaimVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmTransferVO;
|
||||
import com.ruoyi.ibs.cmpm.service.GridCmpmTransferService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/20
|
||||
**/
|
||||
@Api(tags = "绩效网格移交")
|
||||
@RestController
|
||||
@RequestMapping("/grid/cmpm/transfer")
|
||||
public class GridCmpmTransferController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private GridCmpmTransferService gridCmpmTransferService;
|
||||
|
||||
|
||||
@PostMapping("/create")
|
||||
@Log(title = "绩效网格-创建关系移交审批")
|
||||
@ApiOperation("创建关系移交审批")
|
||||
public AjaxResult create(@RequestBody GridCmpmTransferDTO gridCmpmTransferDTO) {
|
||||
return success(gridCmpmTransferService.createGridCmpmTransfer(gridCmpmTransferDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/create/claim")
|
||||
@Log(title = "绩效网格-创建客户经理认领审批")
|
||||
@ApiOperation("创建客户经理认领审批")
|
||||
public AjaxResult createClaim(@RequestBody GridCmpmClaimDTO gridCmpmClaimDTO) {
|
||||
return success(gridCmpmTransferService.createClaim(gridCmpmClaimDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/create/common/claim")
|
||||
@Log(title = "绩效网格-创建公共池认领审批")
|
||||
@ApiOperation("创建公共池认领审批")
|
||||
public AjaxResult createCommonClaim(@RequestBody GridCmpmClaimDTO gridCmpmClaimDTO) {
|
||||
return success(gridCmpmTransferService.createCommonClaim(gridCmpmClaimDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/approve")
|
||||
@Log(title = "绩效网格-审批关系移交审批")
|
||||
@ApiOperation("审批关系移交审批")
|
||||
public AjaxResult approve(@RequestBody GridCmpmApproveDTO gridCmpmApproveDTO) {
|
||||
return success(gridCmpmTransferService.approveTransfer(gridCmpmApproveDTO));
|
||||
}
|
||||
|
||||
@GetMapping("/list/approve")
|
||||
@ApiOperation("绩效网格-查询关系移交审批列表")
|
||||
@Log(title = "查询关系移交审批列表")
|
||||
public TableDataPageInfo list(GridCmpmTransferListDTO gridCmpmRetailListDTO) {
|
||||
Page<Object> page = startPage();
|
||||
List<GridCmpmTransferVO> gridCmpmTransferList = gridCmpmTransferService.getGridCmpmTransferList(gridCmpmRetailListDTO);
|
||||
return getDataTable(gridCmpmTransferList, page);
|
||||
}
|
||||
|
||||
@GetMapping("/list/history")
|
||||
@ApiOperation("绩效网格-查询关系移交审批历史列表")
|
||||
@Log(title = "查询关系移交审批历史列表")
|
||||
public TableDataPageInfo historyList(GridCmpmTransferListDTO gridCmpmRetailListDTO) {
|
||||
Page<Object> page = startPage();
|
||||
List<GridCmpmTransferVO> gridCmpmTransferList = gridCmpmTransferService.getGridCmpmTransferHistoryList(gridCmpmRetailListDTO);
|
||||
return getDataTable(gridCmpmTransferList, page);
|
||||
}
|
||||
|
||||
@PostMapping("/adjust")
|
||||
@ApiOperation("绩效网格-总行支行管理员调整关系")
|
||||
@Log(title = "总行支行管理员调整关系")
|
||||
public AjaxResult adjust(@RequestBody GridCmpmAdjustDTO gridCmpmAdjustDTO) {
|
||||
return success(gridCmpmTransferService.adjustGridCmpm(gridCmpmAdjustDTO));
|
||||
}
|
||||
|
||||
@GetMapping("/claim/list")
|
||||
@ApiOperation("绩效网格-查询认领客户列表")
|
||||
@Log(title = "查询认领客户列表")
|
||||
public TableDataPageInfo claimList(String custKey, String gridType) {
|
||||
Page<Object> page = startPage();
|
||||
List<GridCmpmClaimVO> gridCmpmClaimList = gridCmpmTransferService.queryClaimList(custKey, gridType);
|
||||
return getDataTable(gridCmpmClaimList, page);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.ruoyi.ibs.cmpm.controller;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustReachDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustReachListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.VisitCustReachListVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.VisitCustReachVO;
|
||||
import com.ruoyi.ibs.cmpm.service.VisitCustReachService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Api(tags = "客户接触记录接口")
|
||||
@RestController
|
||||
@RequestMapping("/cust/reach")
|
||||
public class VisitCustReachController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private VisitCustReachService visitCustReachService;
|
||||
|
||||
@ApiOperation("查询客户接触记录列表")
|
||||
@Log(title = "客户接触记录-查询客户接触记录列表")
|
||||
@GetMapping("/list")
|
||||
public R<PageInfo<VisitCustReachListVO>> queryVisitCustReachList(@Valid VisitCustReachListDTO visitCustReachListDTO){
|
||||
return R.ok(visitCustReachService.queryVisitCustReachList(visitCustReachListDTO));
|
||||
}
|
||||
|
||||
@ApiOperation("查询客户搜索框")
|
||||
@Log(title = "客户接触记录-查询客户搜索框")
|
||||
@GetMapping("/query")
|
||||
public R<List<VisitCustReachVO>> queryVisitCustReach(@RequestParam String custName){
|
||||
return R.ok(visitCustReachService.queryVisitCust(custName));
|
||||
}
|
||||
|
||||
@ApiOperation("保存客户接触记录")
|
||||
@Log(title = "客户接触记录-保存客户接触记录")
|
||||
@PostMapping("/save")
|
||||
public R<String> saveVisitCustReach(@RequestBody VisitCustReachDTO visitCustReachDTO){
|
||||
return R.ok(visitCustReachService.saveVisitCustReachDTO(visitCustReachDTO));
|
||||
}
|
||||
|
||||
@ApiOperation("查询客户历史接触记录")
|
||||
@Log(title = "客户接触记录-查询客户历史接触记录")
|
||||
@GetMapping("/query/history")
|
||||
public R<List<VisitCustReachListVO>> queryVisitCustReachListByCustId(@RequestParam String custId){
|
||||
return R.ok(visitCustReachService.queryVisitCustReachListByCustId(custId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/31
|
||||
**/
|
||||
@Data
|
||||
public class CustLevelDTO {
|
||||
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "客户号",notes = "")
|
||||
private String custId ;
|
||||
|
||||
/** 移交客户账号 */
|
||||
@ApiModelProperty(value = "客户账号",notes = "")
|
||||
private String accountNo ;
|
||||
|
||||
@ApiModelProperty(value = "客戶類型 0個人 1商戶 2企業",notes = "")
|
||||
private String custType;
|
||||
|
||||
private String gridType;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CustManagerDTO {
|
||||
|
||||
@ApiModelProperty(value = "客户星级",notes = "")
|
||||
private String custLevel;
|
||||
|
||||
@ApiModelProperty(value = "柜员号",notes = "")
|
||||
private String managerId;
|
||||
|
||||
@ApiModelProperty(value = "网点号",notes = "")
|
||||
private String outletId;
|
||||
|
||||
@ApiModelProperty(value = "网点名",notes = "")
|
||||
private String branchId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/17
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmAdjustDTO {
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType;
|
||||
|
||||
private String deptCode;
|
||||
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(value = "客户信息",notes = "")
|
||||
private List<TransferCustDTO> custList ;
|
||||
|
||||
private String userName;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/27
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmApproveDTO {
|
||||
private List<Long> idList;
|
||||
|
||||
private Boolean approveResult;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/28
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmBranchDTO {
|
||||
private Long branchId;
|
||||
|
||||
private List<String> custIdList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/27
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmClaimDTO {
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType ;
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "移交客户信息",notes = "")
|
||||
private List<TransferCustDTO> custList ;
|
||||
/** 新客户经理柜员号 */
|
||||
@ApiModelProperty(value = "新客户经理柜员号",notes = "")
|
||||
private String userName ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/15
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmListDTO {
|
||||
|
||||
@ApiModelProperty(value = "网格类型 零售retail 对公corporate 对公账户对公corporate_account",notes = "")
|
||||
private String gridType;
|
||||
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(name = "客户号",notes = "")
|
||||
private String custId ;
|
||||
|
||||
/** 客户姓名 */
|
||||
@ApiModelProperty(name = "客户姓名",notes = "")
|
||||
private String custName ;
|
||||
/** 客户姓名 */
|
||||
@ApiModelProperty(name = "客户类型",notes = "")
|
||||
private List<String> custTypes ;
|
||||
/** 客户层级 */
|
||||
@ApiModelProperty(name = "客户层级",notes = "")
|
||||
private List<String> custLevels ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "客户经理柜员号",notes = "")
|
||||
private String userName ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "用户柜员号",notes = "")
|
||||
private String curUserName ;
|
||||
/** 网点机构号 */
|
||||
@ApiModelProperty(name = "网点机构号",notes = "")
|
||||
private Long outletId ;
|
||||
/** 支行机构号 */
|
||||
@ApiModelProperty(name = "支行机构号",notes = "")
|
||||
private Long branchId ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/20
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmTransferDTO {
|
||||
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType ;
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "移交客户信息",notes = "")
|
||||
private List<TransferCustDTO> custList ;
|
||||
/** 原客户经理柜员号 */
|
||||
@ApiModelProperty(value = "原客户经理柜员号",notes = "")
|
||||
private String prevUserName ;
|
||||
/** 新客户经理柜员号 */
|
||||
@ApiModelProperty(value = "新客户经理柜员号",notes = "")
|
||||
private String nextUserName ;
|
||||
@ApiModelProperty(value = "是否全部移交",notes = "")
|
||||
private Boolean isFullTransfer ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/20
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmTransferListDTO {
|
||||
|
||||
/** 移交客户信息 */
|
||||
@ApiModelProperty(value = "移交客户信息",notes = "")
|
||||
private String keyword;
|
||||
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType ;
|
||||
|
||||
private String userRole;
|
||||
|
||||
private Long deptId;
|
||||
|
||||
private String userName;
|
||||
|
||||
private String headId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/13
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmUpdateDTO {
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType ;
|
||||
/** 归属总行 */
|
||||
@ApiModelProperty(value = "归属总行",notes = "")
|
||||
private String deptCode ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(name = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(name = "账户号",notes = "")
|
||||
private String accountNo ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "客户经理柜员号",notes = "")
|
||||
private String prevUserName ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "客户经理柜员号",notes = "")
|
||||
private String userName ;
|
||||
/** 客户经理姓名 */
|
||||
@ApiModelProperty(name = "客户经理姓名",notes = "")
|
||||
private String nickName ;
|
||||
/** 网点机构号 */
|
||||
@ApiModelProperty(name = "网点机构号",notes = "")
|
||||
private Long outletId ;
|
||||
/** 网点名称 */
|
||||
@ApiModelProperty(name = "网点名称",notes = "")
|
||||
private String outletName ;
|
||||
/** 支行机构号 */
|
||||
@ApiModelProperty(name = "支行机构号",notes = "")
|
||||
private Long branchId ;
|
||||
/** 支行名称 */
|
||||
@ApiModelProperty(name = "支行名称",notes = "")
|
||||
private String branchName ;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/22
|
||||
**/
|
||||
@Data
|
||||
public class TransferCustDTO {
|
||||
/** 移交客户类型 */
|
||||
@ApiModelProperty(value = "移交客户类型",notes = "")
|
||||
private String custType ;
|
||||
/** 移交客户名称 */
|
||||
@ApiModelProperty(value = "移交客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "移交客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 移交客户账号 */
|
||||
@ApiModelProperty(value = "移交客户账号",notes = "")
|
||||
private String accountNo ;
|
||||
|
||||
@ApiModelProperty(value = "原客户经理",notes = "")
|
||||
private String prevUserName ;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/21
|
||||
**/
|
||||
@Data
|
||||
public class UserDeptDTO {
|
||||
|
||||
private Long deptId;
|
||||
|
||||
private String deptType;
|
||||
|
||||
private Long outletId;
|
||||
|
||||
private Long branchId;
|
||||
|
||||
private Long headId;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Data
|
||||
public class VisitCustQueryDTO {
|
||||
|
||||
private String custName;
|
||||
|
||||
private String userName;
|
||||
|
||||
private Long branchId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Data
|
||||
public class VisitCustReachDTO {
|
||||
|
||||
private Long id ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(value = "客户号",notes = "")
|
||||
@NotNull
|
||||
private String custId ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(value = "客户内码",notes = "")
|
||||
@NotNull
|
||||
private String custIdn ;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称",notes = "")
|
||||
@NotNull
|
||||
private String custName ;
|
||||
/** 手机号 */
|
||||
@ApiModelProperty(value = "手机号",notes = "")
|
||||
private String mobile ;
|
||||
/** 电访计划时间 */
|
||||
@ApiModelProperty(value = "电访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telPlanDate ;
|
||||
/** 电访计划内容 */
|
||||
@ApiModelProperty(value = "电访计划内容",notes = "")
|
||||
private String telPlanRemark ;
|
||||
/** 电访总结时间 */
|
||||
@ApiModelProperty(value = "电访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telSummaryDate ;
|
||||
/** 电访总结内容 */
|
||||
@ApiModelProperty(value = "电访总结内容",notes = "")
|
||||
private String telSummaryRemark ;
|
||||
/** 面访计划时间 */
|
||||
@ApiModelProperty(value = "面访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitPlanDate ;
|
||||
/** 面访计划内容 */
|
||||
@ApiModelProperty(value = "面访计划内容",notes = "")
|
||||
private String visitPlanRemark ;
|
||||
/** 面访总结时间 */
|
||||
@ApiModelProperty(value = "面访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitSummaryDate ;
|
||||
/** 面访总结内容 */
|
||||
@ApiModelProperty(value = "面访总结内容",notes = "")
|
||||
private String visitSummaryRemark ;
|
||||
/** 提交标识 */
|
||||
@ApiModelProperty(value = "提交标识 保存False 提交True",notes = "")
|
||||
private Boolean submitFlag ;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Data
|
||||
@Valid
|
||||
public class VisitCustReachListDTO {
|
||||
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "权限柜员号",notes = "", hidden = true)
|
||||
private String aliasUserName;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "柜员号",notes = "")
|
||||
private String userName;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "柜员号",notes = "")
|
||||
private String editUserName;
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
private Long deptId;
|
||||
|
||||
@NotNull
|
||||
private Integer pageNum;
|
||||
|
||||
@NotNull
|
||||
private Integer pageSize;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 零售星级客户管户明细表
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-11-20
|
||||
*/
|
||||
@Data
|
||||
@TableName("dwb_retail_cust_level_manager_detail")
|
||||
@ApiModel(description = "零售星级客户管户明细表")
|
||||
public class DwbRetailCustLevelManagerDetail {
|
||||
|
||||
/** id */
|
||||
@TableId
|
||||
@ApiModelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/** 网点号 */
|
||||
@ApiModelProperty(value = "网点号")
|
||||
private String outletId;
|
||||
|
||||
/** 网点名 */
|
||||
@ApiModelProperty(value = "网点名")
|
||||
private String outletName;
|
||||
|
||||
/** 支行号 */
|
||||
@ApiModelProperty(value = "支行号")
|
||||
private String branchId;
|
||||
|
||||
/** 支行名 */
|
||||
@ApiModelProperty(value = "支行名")
|
||||
private String branchName;
|
||||
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称")
|
||||
private String custName;
|
||||
|
||||
/** 客户证件号 */
|
||||
@ApiModelProperty(value = "客户证件号")
|
||||
private String custIdc;
|
||||
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(value = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/** 年龄 */
|
||||
@ApiModelProperty(value = "年龄")
|
||||
private String custAge;
|
||||
|
||||
/** 性别 */
|
||||
@ApiModelProperty(value = "性别")
|
||||
private String custSex;
|
||||
|
||||
/** 联系电话 */
|
||||
@ApiModelProperty(value = "联系电话")
|
||||
private String custPhone;
|
||||
|
||||
/** 联系地址 */
|
||||
@ApiModelProperty(value = "联系地址")
|
||||
private String custAddress;
|
||||
|
||||
/** 总资产余额 */
|
||||
@ApiModelProperty(value = "总资产余额")
|
||||
private BigDecimal custAumBal;
|
||||
|
||||
/** 总资产余额较上月变动 */
|
||||
@ApiModelProperty(value = "总资产余额较上月变动")
|
||||
private BigDecimal aumBalCompLm;
|
||||
|
||||
/** 总资产月日均 */
|
||||
@ApiModelProperty(value = "总资产月日均")
|
||||
private BigDecimal custAumMonthAvg;
|
||||
|
||||
/** 客户星级 */
|
||||
@ApiModelProperty(value = "客户星级")
|
||||
private String custLevel;
|
||||
|
||||
/** 星级较上月变动 */
|
||||
@ApiModelProperty(value = "星级较上月变动")
|
||||
private String custLevelCompLm;
|
||||
|
||||
/** 责任人 */
|
||||
@ApiModelProperty(value = "责任人")
|
||||
private String managerName;
|
||||
|
||||
/** 责任人柜员号 */
|
||||
@ApiModelProperty(value = "责任人柜员号")
|
||||
private String managerId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/15
|
||||
*
|
||||
* ALTER TABLE ibs.grid_cmpm_retail_965 ADD cust_type varchar(100) NULL COMMENT '0个人 1商户 2企业';
|
||||
* ALTER TABLE ibs.grid_cmpm_retail_965 ADD grid_type varchar(100) NULL COMMENT '零售retail 对公corporate 对公账户corporateAccount';
|
||||
* ALTER TABLE ibs.grid_cmpm_retail_965 ADD account_no varchar(100) NULL COMMENT '账户号';
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpm {
|
||||
/** id */
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ApiModelProperty(name = "id",notes = "")
|
||||
private Long id ;
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType ;
|
||||
/** 客户类型 retail merchant business */
|
||||
@ApiModelProperty(name = "客户类型",notes = "")
|
||||
private String custType ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(name = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 身份证号 */
|
||||
@ApiModelProperty(name = "身份证号",notes = "")
|
||||
private String custIdc ;
|
||||
/** 统信码 */
|
||||
@ApiModelProperty(name = "统信码",notes = "")
|
||||
private String usci;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(name = "客户内码",notes = "")
|
||||
private String custIdn ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(name = "账户号",notes = "")
|
||||
private String accountNo ;
|
||||
/** 客户姓名 */
|
||||
@ApiModelProperty(name = "客户姓名",notes = "")
|
||||
private String custName ;
|
||||
/** 客户层级 */
|
||||
@ApiModelProperty(name = "客户层级",notes = "")
|
||||
private String custLevel ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "客户经理柜员号",notes = "")
|
||||
private String userName ;
|
||||
/** 客户经理姓名 */
|
||||
@ApiModelProperty(name = "客户经理姓名",notes = "")
|
||||
private String nickName ;
|
||||
/** 网点机构号 */
|
||||
@ApiModelProperty(name = "网点机构号",notes = "")
|
||||
private Long outletId ;
|
||||
/** 网点名称 */
|
||||
@ApiModelProperty(name = "网点名称",notes = "")
|
||||
private String outletName ;
|
||||
/** 支行机构号 */
|
||||
@ApiModelProperty(name = "支行机构号",notes = "")
|
||||
private Long branchId ;
|
||||
/** 支行名称 */
|
||||
@ApiModelProperty(name = "支行名称",notes = "")
|
||||
private String branchName ;
|
||||
|
||||
private String source;
|
||||
/** 锁定标识 */
|
||||
@ApiModelProperty(name = "锁定标识",notes = "")
|
||||
private Boolean lockFlag ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/15
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmRetail {
|
||||
/** id */
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ApiModelProperty(name = "id",notes = "")
|
||||
private Long id ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(name = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 身份证号 */
|
||||
@ApiModelProperty(name = "身份证号",notes = "")
|
||||
private String custIdc ;
|
||||
/** 统信码 */
|
||||
@ApiModelProperty(name = "统信码",notes = "")
|
||||
private String usci;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(name = "客户内码",notes = "")
|
||||
private String custIdn ;
|
||||
/** 客户姓名 */
|
||||
@ApiModelProperty(name = "客户姓名",notes = "")
|
||||
private String custName ;
|
||||
/** 客户层级 */
|
||||
@ApiModelProperty(name = "客户层级",notes = "")
|
||||
private String custLevel ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "客户经理柜员号",notes = "")
|
||||
private String userName ;
|
||||
/** 客户经理姓名 */
|
||||
@ApiModelProperty(name = "客户经理姓名",notes = "")
|
||||
private String nickName ;
|
||||
/** 网点机构号 */
|
||||
@ApiModelProperty(name = "网点机构号",notes = "")
|
||||
private Long outletId ;
|
||||
/** 网点名称 */
|
||||
@ApiModelProperty(name = "网点名称",notes = "")
|
||||
private String outletName ;
|
||||
/** 支行机构号 */
|
||||
@ApiModelProperty(name = "支行机构号",notes = "")
|
||||
private Long branchId ;
|
||||
/** 支行名称 */
|
||||
@ApiModelProperty(name = "支行名称",notes = "")
|
||||
private String branchName ;
|
||||
|
||||
private String source;
|
||||
/** 锁定标识 */
|
||||
@ApiModelProperty(name = "锁定标识",notes = "")
|
||||
private Boolean lockFlag ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/20
|
||||
*
|
||||
* ALTER TABLE ibs.grid_cmpm_transfer ADD cust_type varchar(100) NULL COMMENT '客户类型 0个人1商户2企业';
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmTransfer {
|
||||
|
||||
/** id */
|
||||
@ApiModelProperty(value = "id",notes = "")
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id ;
|
||||
@ApiModelProperty(value = "0移交 1认领",notes = "")
|
||||
private String transferLabel;
|
||||
/** 移交类型 网点内 支行内 跨支行 */
|
||||
@ApiModelProperty(value = "移交类型 0网点内 1支行内 2跨支行",notes = "")
|
||||
private Integer transferType ;
|
||||
/** 移交状态 审批中 通过 拒绝 */
|
||||
@ApiModelProperty(value = "移交状态 0网点审批中 1支行审批中 2总行审批中 3通过 -1拒绝",notes = "")
|
||||
private String transferStatus ;
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售retail 对公corporate 对公账户corporate_account",notes = "")
|
||||
private String gridType ;
|
||||
/** 归属总行 */
|
||||
@ApiModelProperty(value = "归属总行",notes = "")
|
||||
private String headId ;
|
||||
/** 移交客户名称 */
|
||||
@ApiModelProperty(value = "移交客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "移交客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 移交客户类型 */
|
||||
@ApiModelProperty(value = "移交客户类型",notes = "")
|
||||
private String custType ;
|
||||
/** 移交客户账号 */
|
||||
@ApiModelProperty(value = "移交客户账号",notes = "")
|
||||
private String accountNo ;
|
||||
/** 原客户经理柜员号 */
|
||||
@ApiModelProperty(value = "原客户经理柜员号",notes = "")
|
||||
private String prevUserName ;
|
||||
/** 原归属网点 */
|
||||
@ApiModelProperty(value = "原归属网点",notes = "")
|
||||
private Long prevOutletId ;
|
||||
/** 原归属支行 */
|
||||
@ApiModelProperty(value = "原归属支行",notes = "")
|
||||
private Long prevBranchId ;
|
||||
/** 新客户经理柜员号 */
|
||||
@ApiModelProperty(value = "新客户经理柜员号",notes = "")
|
||||
private String nextUserName ;
|
||||
/** 新归属网点 */
|
||||
@ApiModelProperty(value = "新归属网点",notes = "")
|
||||
private Long nextOutletId ;
|
||||
/** 新归属支行 */
|
||||
@ApiModelProperty(value = "新归属支行",notes = "")
|
||||
private Long nextBranchId ;
|
||||
/** 网点审批人 */
|
||||
@ApiModelProperty(value = "网点审批人",notes = "")
|
||||
private String outletApprover ;
|
||||
/** 网点审批结果 */
|
||||
@ApiModelProperty(value = "网点审批结果",notes = "")
|
||||
private Boolean outletApproveResult ;
|
||||
/** 网点审批时间 */
|
||||
@ApiModelProperty(value = "网点审批时间",notes = "")
|
||||
private Date outletApproveTime ;
|
||||
/** 支行审批人 */
|
||||
@ApiModelProperty(value = "支行审批人",notes = "")
|
||||
private String branchApprover ;
|
||||
/** 支行审批结果 */
|
||||
@ApiModelProperty(value = "支行审批结果",notes = "")
|
||||
private Boolean branchApproveResult ;
|
||||
/** 支行审批时间 */
|
||||
@ApiModelProperty(value = "支行审批时间",notes = "")
|
||||
private Date branchApproveTime ;
|
||||
/** 总行审批人 */
|
||||
@ApiModelProperty(value = "总行审批人",notes = "")
|
||||
private String headApprover ;
|
||||
/** 总行审批结果 */
|
||||
@ApiModelProperty(value = "总行审批结果",notes = "")
|
||||
private Boolean headApproveResult ;
|
||||
/** 总行审批时间 */
|
||||
@ApiModelProperty(value = "总行审批时间",notes = "")
|
||||
private Date headApproveTime ;
|
||||
/** 创建时间 */
|
||||
@ApiModelProperty(value = "创建时间",notes = "")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime ;
|
||||
/** 更新时间 */
|
||||
@ApiModelProperty(value = "更新时间",notes = "")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date updateTime ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/10
|
||||
**/
|
||||
@Data
|
||||
public class VisitCustReach {
|
||||
/** 主键 */
|
||||
@ApiModelProperty(value = "主键",notes = "")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(value = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(value = "客户内码",notes = "")
|
||||
private String custIdn ;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 手机号 */
|
||||
@ApiModelProperty(value = "手机号",notes = "")
|
||||
private String mobile ;
|
||||
/** 电访计划时间 */
|
||||
@ApiModelProperty(value = "电访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telPlanDate ;
|
||||
/** 电访计划内容 */
|
||||
@ApiModelProperty(value = "电访计划内容",notes = "")
|
||||
private String telPlanRemark ;
|
||||
/** 电访总结时间 */
|
||||
@ApiModelProperty(value = "电访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telSummaryDate ;
|
||||
/** 电访总结内容 */
|
||||
@ApiModelProperty(value = "电访总结内容",notes = "")
|
||||
private String telSummaryRemark ;
|
||||
/** 面访计划时间 */
|
||||
@ApiModelProperty(value = "面访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitPlanDate ;
|
||||
/** 面访计划内容 */
|
||||
@ApiModelProperty(value = "面访计划内容",notes = "")
|
||||
private String visitPlanRemark ;
|
||||
/** 面访总结时间 */
|
||||
@ApiModelProperty(value = "面访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitSummaryDate ;
|
||||
/** 面访总结内容 */
|
||||
@ApiModelProperty(value = "面访总结内容",notes = "")
|
||||
private String visitSummaryRemark ;
|
||||
/** 机构号 */
|
||||
@ApiModelProperty(value = "机构号",notes = "")
|
||||
private Long deptId ;
|
||||
/** 创建者 */
|
||||
@ApiModelProperty(value = "创建者",notes = "")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String createBy ;
|
||||
/** 创建时间 */
|
||||
@ApiModelProperty(value = "创建时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime ;
|
||||
/** 更新者 */
|
||||
@ApiModelProperty(value = "更新者",notes = "")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private String updateBy ;
|
||||
/** 更新时间 */
|
||||
@ApiModelProperty(value = "更新时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date updateTime ;
|
||||
/** 提交标识 */
|
||||
@ApiModelProperty(value = "提交标识",notes = "")
|
||||
private Boolean submitFlag;
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 零售星级客户管户明细表
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-11-20
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "零售星级客户管户明细表")
|
||||
public class DwbRetailCustLevelManagerDetailVO {
|
||||
|
||||
/** id */
|
||||
@ApiModelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/** 网点号 */
|
||||
@ApiModelProperty(value = "网点号")
|
||||
private String outletId;
|
||||
|
||||
/** 网点名 */
|
||||
@ApiModelProperty(value = "网点名")
|
||||
private String outletName;
|
||||
|
||||
/** 支行号 */
|
||||
@ApiModelProperty(value = "支行号")
|
||||
private String branchId;
|
||||
|
||||
/** 支行名 */
|
||||
@ApiModelProperty(value = "支行名")
|
||||
private String branchName;
|
||||
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称")
|
||||
private String custName;
|
||||
|
||||
/** 客户证件号 */
|
||||
@ApiModelProperty(value = "客户证件号")
|
||||
private String custIdc;
|
||||
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(value = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/** 年龄 */
|
||||
@ApiModelProperty(value = "年龄")
|
||||
private String custAge;
|
||||
|
||||
/** 性别 */
|
||||
@ApiModelProperty(value = "性别")
|
||||
private String custSex;
|
||||
|
||||
/** 联系电话 */
|
||||
@ApiModelProperty(value = "联系电话")
|
||||
private String custPhone;
|
||||
|
||||
/** 联系地址 */
|
||||
@ApiModelProperty(value = "联系地址")
|
||||
private String custAddress;
|
||||
|
||||
/** 总资产余额 */
|
||||
@ApiModelProperty(value = "总资产余额")
|
||||
private BigDecimal custAumBal;
|
||||
|
||||
/** 总资产余额较上月变动 */
|
||||
@ApiModelProperty(value = "总资产余额较上月变动")
|
||||
private BigDecimal aumBalCompLm;
|
||||
|
||||
/** 总资产月日均 */
|
||||
@ApiModelProperty(value = "总资产月日均")
|
||||
private BigDecimal custAumMonthAvg;
|
||||
|
||||
/** 客户星级 */
|
||||
@ApiModelProperty(value = "客户星级")
|
||||
private String custLevel;
|
||||
|
||||
/** 星级较上月变动 */
|
||||
@ApiModelProperty(value = "星级较上月变动")
|
||||
private String custLevelCompLm;
|
||||
|
||||
/** 责任人 */
|
||||
@ApiModelProperty(value = "责任人")
|
||||
private String managerName;
|
||||
|
||||
/** 责任人柜员号 */
|
||||
@ApiModelProperty(value = "责任人柜员号")
|
||||
private String managerId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class DwbRetailResultVO {
|
||||
|
||||
/** 总资产余额 */
|
||||
@ApiModelProperty(value = "总资产余额")
|
||||
private BigDecimal custAumBal;
|
||||
|
||||
/** 总资产余额-上月 */
|
||||
@ApiModelProperty(value = "总资产余额-上月")
|
||||
private BigDecimal custAumBalLm;
|
||||
|
||||
/** 总资产余额较上月变动 */
|
||||
@ApiModelProperty(value = "总资产余额较上月变动")
|
||||
private BigDecimal aumBalCompLm;
|
||||
|
||||
/** 总资产月日均 */
|
||||
@ApiModelProperty(value = "总资产月日均")
|
||||
private BigDecimal custAumMonthAvg;
|
||||
|
||||
/** 总资产月日均-上月 */
|
||||
@ApiModelProperty(value = "总资产月日均-上月")
|
||||
private BigDecimal custAumMonthAvgLm;
|
||||
|
||||
/** 总资产月日均较上月变动 */
|
||||
@ApiModelProperty(value = "总资产月日均较上月变动")
|
||||
private BigDecimal custAumMonthAvgCompLm;
|
||||
|
||||
/** 各星级客户数量统计 */
|
||||
@ApiModelProperty(value = "各星级客户数量统计")
|
||||
private Map<String, Integer> custLevelCount;
|
||||
|
||||
/** 各星级客户数较上月变动 */
|
||||
@ApiModelProperty(value = "各星级客户数较上月变动")
|
||||
private Map<String, Integer> custLevelCompLm;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/17
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmClaimVO {
|
||||
|
||||
@ApiModelProperty(value = "客户类型",notes = "")
|
||||
private String custType;
|
||||
/** 移交客户名称 */
|
||||
@ApiModelProperty(value = "移交客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "移交客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 移交客户账号 */
|
||||
@ApiModelProperty(value = "移交客户账号",notes = "")
|
||||
private String accountNo ;
|
||||
|
||||
@ApiModelProperty(value = "柜员号",notes = "")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty(value = "柜员名",notes = "")
|
||||
private String nickName;
|
||||
|
||||
@ApiModelProperty(value = "认领状态说明",notes = "")
|
||||
private String claimStatus;
|
||||
|
||||
@ApiModelProperty(value = "可否进行认领",notes = "")
|
||||
private Boolean claimFlag;
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/22
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmTransferVO {
|
||||
/** id */
|
||||
@ApiModelProperty(value = "id",notes = "")
|
||||
private Long id ;
|
||||
@ApiModelProperty(value = "0移交 1认领",notes = "")
|
||||
private String transferLabel;
|
||||
/** 移交类型 网点内 支行内 跨支行 */
|
||||
@ApiModelProperty(value = "移交类型 0网点内 1支行内 2跨支行",notes = "")
|
||||
private Integer transferType ;
|
||||
/** 移交状态 审批中 通过 拒绝 */
|
||||
@ApiModelProperty(value = "移交状态 0网点审批中 1支行审批中 2总行审批中 3通过 -1拒绝",notes = "")
|
||||
private String transferStatus ;
|
||||
/** 移交网格 零售 对公 对公账户 */
|
||||
@ApiModelProperty(value = "移交网格 零售 对公 对公账户",notes = "")
|
||||
private String gridType ;
|
||||
/** 归属总行 */
|
||||
@ApiModelProperty(value = "归属总行",notes = "")
|
||||
private String headId ;
|
||||
/** 移交客户类型 */
|
||||
@ApiModelProperty(value = "移交客户类型",notes = "")
|
||||
private String custType ;
|
||||
/** 移交客户名称 */
|
||||
@ApiModelProperty(value = "移交客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 移交客户号 */
|
||||
@ApiModelProperty(value = "移交客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 移交客户账号 */
|
||||
@ApiModelProperty(value = "移交客户账号",notes = "")
|
||||
private String accountNo ;
|
||||
/** 原客户经理柜员号 */
|
||||
@ApiModelProperty(value = "原客户经理柜员号",notes = "")
|
||||
private String prevUser ;
|
||||
/** 原归属网点 */
|
||||
@ApiModelProperty(value = "原归属网点",notes = "")
|
||||
private Long prevOutletId ;
|
||||
/** 原归属支行 */
|
||||
@ApiModelProperty(value = "原归属支行",notes = "")
|
||||
private Long prevBranchId ;
|
||||
/** 新客户经理柜员号 */
|
||||
@ApiModelProperty(value = "新客户经理柜员号",notes = "")
|
||||
private String nextUser ;
|
||||
/** 新归属网点 */
|
||||
@ApiModelProperty(value = "新归属网点",notes = "")
|
||||
private Long nextOutletId ;
|
||||
/** 新归属支行 */
|
||||
@ApiModelProperty(value = "新归属支行",notes = "")
|
||||
private Long nextBranchId ;
|
||||
/** 网点审批人 */
|
||||
@ApiModelProperty(value = "网点审批人",notes = "")
|
||||
private String outletApprover ;
|
||||
/** 网点审批结果 */
|
||||
@ApiModelProperty(value = "网点审批结果",notes = "")
|
||||
private String outletApproveResult ;
|
||||
/** 网点审批时间 */
|
||||
@ApiModelProperty(value = "网点审批时间",notes = "")
|
||||
private Date outletApproveTime ;
|
||||
/** 支行审批人 */
|
||||
@ApiModelProperty(value = "支行审批人",notes = "")
|
||||
private String branchApprover ;
|
||||
/** 支行审批结果 */
|
||||
@ApiModelProperty(value = "支行审批结果",notes = "")
|
||||
private String branchApproveResult ;
|
||||
/** 支行审批时间 */
|
||||
@ApiModelProperty(value = "支行审批时间",notes = "")
|
||||
private Date branchApproveTime ;
|
||||
/** 总行审批人 */
|
||||
@ApiModelProperty(value = "总行审批人",notes = "")
|
||||
private String headApprover ;
|
||||
/** 总行审批结果 */
|
||||
@ApiModelProperty(value = "总行审批结果",notes = "")
|
||||
private String headApproveResult ;
|
||||
/** 总行审批时间 */
|
||||
@ApiModelProperty(value = "总行审批时间",notes = "")
|
||||
private Date headApproveTime ;
|
||||
/** 创建时间 */
|
||||
@ApiModelProperty(value = "创建时间",notes = "")
|
||||
private Date createTime ;
|
||||
/** 更新时间 */
|
||||
@ApiModelProperty(value = "更新时间",notes = "")
|
||||
private Date updateTime ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/15
|
||||
**/
|
||||
@Data
|
||||
public class GridCmpmVO {
|
||||
/** id */
|
||||
@ApiModelProperty(name = "id",notes = "")
|
||||
private Long id ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(name = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 身份证号 */
|
||||
@ApiModelProperty(name = "身份证号",notes = "")
|
||||
private String custIdc ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(name = "客户内码",notes = "")
|
||||
private String custIdn ;
|
||||
|
||||
@ApiModelProperty(name = "客户类型",notes = "")
|
||||
private String custType ;
|
||||
|
||||
@ApiModelProperty(name = "统信码",notes = "")
|
||||
private String usci;
|
||||
|
||||
private String accountNo;
|
||||
/** 客户姓名 */
|
||||
@ApiModelProperty(name = "客户姓名",notes = "")
|
||||
private String custName ;
|
||||
/** 客户层级 */
|
||||
@ApiModelProperty(name = "客户层级",notes = "")
|
||||
private String custLevel ;
|
||||
/** 客户经理柜员号 */
|
||||
@ApiModelProperty(name = "客户经理柜员号",notes = "")
|
||||
private String userName ;
|
||||
/** 客户经理姓名 */
|
||||
@ApiModelProperty(name = "客户经理姓名",notes = "")
|
||||
private String nickName ;
|
||||
/** 网点机构号 */
|
||||
@ApiModelProperty(name = "网点机构号",notes = "")
|
||||
private Long outletId ;
|
||||
/** 网点名称 */
|
||||
@ApiModelProperty(name = "网点名称",notes = "")
|
||||
private String outletName ;
|
||||
/** 支行机构号 */
|
||||
@ApiModelProperty(name = "支行机构号",notes = "")
|
||||
private Long branchId ;
|
||||
/** 支行名称 */
|
||||
@ApiModelProperty(name = "支行名称",notes = "")
|
||||
private String branchName ;
|
||||
|
||||
@ApiModelProperty(name = "客户来源",notes = "")
|
||||
private String source;
|
||||
/** 锁定标识 */
|
||||
@ApiModelProperty(name = "锁定标识",notes = "")
|
||||
private Boolean lockFlag ;
|
||||
|
||||
@ApiModelProperty(name = "是否可以移交",notes = "")
|
||||
private Boolean transferFlag;
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Data
|
||||
public class VisitCustReachListVO {
|
||||
private Long id ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(value = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(value = "客户内码",notes = "")
|
||||
private String custIdn ;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 手机号 */
|
||||
@ApiModelProperty(value = "手机号",notes = "")
|
||||
private String mobile ;
|
||||
/** 电访计划时间 */
|
||||
@ApiModelProperty(value = "电访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telPlanDate ;
|
||||
/** 电访计划内容 */
|
||||
@ApiModelProperty(value = "电访计划内容",notes = "")
|
||||
private String telPlanRemark ;
|
||||
/** 电访总结时间 */
|
||||
@ApiModelProperty(value = "电访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telSummaryDate ;
|
||||
/** 电访总结内容 */
|
||||
@ApiModelProperty(value = "电访总结内容",notes = "")
|
||||
private String telSummaryRemark ;
|
||||
/** 面访计划时间 */
|
||||
@ApiModelProperty(value = "面访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitPlanDate ;
|
||||
/** 面访计划内容 */
|
||||
@ApiModelProperty(value = "面访计划内容",notes = "")
|
||||
private String visitPlanRemark ;
|
||||
/** 面访总结时间 */
|
||||
@ApiModelProperty(value = "面访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitSummaryDate ;
|
||||
/** 面访总结内容 */
|
||||
@ApiModelProperty(value = "面访总结内容",notes = "")
|
||||
private String visitSummaryRemark ;
|
||||
|
||||
@ApiModelProperty(value = "柜员名称",notes = "")
|
||||
private String nickName;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新时间",notes = "")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "可编辑标识",notes = "")
|
||||
private Boolean editFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Data
|
||||
public class VisitCustReachVO {
|
||||
private Long id ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(value = "客户号",notes = "")
|
||||
private String custId ;
|
||||
/** 客户内码 */
|
||||
@ApiModelProperty(value = "客户内码",notes = "")
|
||||
private String custIdn ;
|
||||
/** 客户名称 */
|
||||
@ApiModelProperty(value = "客户名称",notes = "")
|
||||
private String custName ;
|
||||
/** 手机号 */
|
||||
@ApiModelProperty(value = "手机号",notes = "")
|
||||
private String mobile ;
|
||||
/** 电访计划时间 */
|
||||
@ApiModelProperty(value = "电访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telPlanDate ;
|
||||
/** 电访计划内容 */
|
||||
@ApiModelProperty(value = "电访计划内容",notes = "")
|
||||
private String telPlanRemark ;
|
||||
/** 电访总结时间 */
|
||||
@ApiModelProperty(value = "电访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date telSummaryDate ;
|
||||
/** 电访总结内容 */
|
||||
@ApiModelProperty(value = "电访总结内容",notes = "")
|
||||
private String telSummaryRemark ;
|
||||
/** 面访计划时间 */
|
||||
@ApiModelProperty(value = "面访计划时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitPlanDate ;
|
||||
/** 面访计划内容 */
|
||||
@ApiModelProperty(value = "面访计划内容",notes = "")
|
||||
private String visitPlanRemark ;
|
||||
/** 面访总结时间 */
|
||||
@ApiModelProperty(value = "面访总结时间",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date visitSummaryDate ;
|
||||
/** 面访总结内容 */
|
||||
@ApiModelProperty(value = "面访总结内容",notes = "")
|
||||
private String visitSummaryRemark ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.ibs.cmpm.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Data
|
||||
public class VisitCustVO {
|
||||
|
||||
private String custId;
|
||||
|
||||
private String custIdn;
|
||||
|
||||
private String custName;
|
||||
|
||||
private String mobile;
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.ruoyi.ibs.cmpm.mapper;
|
||||
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.CustLevelDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.CustManagerDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmUpdateDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpm;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailCustLevelManagerDetailVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailResultVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmClaimVO;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustBaseInfo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/26
|
||||
**/
|
||||
@Mapper
|
||||
public interface GridCmpmMapper {
|
||||
|
||||
List<GridCmpm> selectManageList(GridCmpmListDTO gridCmpmListDTO);
|
||||
|
||||
List<GridCmpm> selectCommonList(GridCmpmListDTO gridCmpmListDTO);
|
||||
|
||||
GridCmpm getGridCmpmByCustKey(@Param("custId") String custId, @Param("accountNo") String accountNo, @Param("userName") String userName,
|
||||
@Param("gridType") String gridType, @Param("deptCode") String deptCode);
|
||||
|
||||
List<GridCmpm> getGridCmpmByUserName(@Param("userName") String userName, @Param("deptCode") String deptCode, @Param("gridType") String gridType);
|
||||
|
||||
List<GridCmpm> queryGridCmpmByCustKey( @Param("deptCode") String deptCode, @Param("gridType") String gridType,
|
||||
@Param("custIds") List<String> custIds, @Param("accountNos") List<String> accountNos );
|
||||
|
||||
Long updateGridCmpm(GridCmpmUpdateDTO gridCmpmUpdateDTO);
|
||||
|
||||
List<String> getAllCustLevel(@Param("gridType") String gridType);
|
||||
|
||||
String getCustLevel(CustLevelDTO custLevelDTO);
|
||||
|
||||
List<GridCmpmClaimVO> queryClaimList(@Param("deptCode") String deptCode, @Param("gridType") String gridType, @Param("custKey") String custKey);
|
||||
|
||||
List<DwbRetailCustLevelManagerDetailVO> getCustManagerList(CustManagerDTO custManagerDTO);
|
||||
|
||||
int getCustLevelCount(CustManagerDTO custManagerDTO);
|
||||
|
||||
List<CustBaseInfo> selectCustInfoFromGridCmpm(CustBaseInfo custBaseInfo);
|
||||
|
||||
List<CustBaseInfo> queryCustInfoFromGridCmpm(CustBaseInfo custBaseInfo);
|
||||
|
||||
|
||||
DwbRetailResultVO getCustManagerResult(CustManagerDTO custManagerDTO);
|
||||
|
||||
List<String> getCustLevelList();
|
||||
|
||||
int getCustCountByLevel(@Param("dto") CustManagerDTO custManagerDTO, @Param("time") String time);
|
||||
|
||||
List<String> selectDeptListByRole(@Param("role") String role);
|
||||
|
||||
List<String> selectManagerList();
|
||||
|
||||
|
||||
// List<CustBaseInfo> selectCustInfoRetailFromGridCmpm(CustBaseInfo custBaseInfo);
|
||||
//
|
||||
// List<CustBaseInfo> selectCustInfoMerchantFromGridCmpm(CustBaseInfo custBaseInfo);
|
||||
//
|
||||
// List<CustBaseInfo> selectCustInfoBusinessFromGridCmpm(CustBaseInfo custBaseInfo);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.ibs.cmpm.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpmRetail;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/26
|
||||
**/
|
||||
@Mapper
|
||||
public interface GridCmpmRetailMapper extends BaseMapper<GridCmpmRetail> {
|
||||
GridCmpmRetail getGridCmpmRetailByCustId(@Param("custId") String custId, @Param("deptCode") String deptCode);
|
||||
|
||||
List<GridCmpmRetail> getGridCmpmRetailByUserName(@Param("userName") String userName, @Param("deptCode") String deptCode);
|
||||
|
||||
Long updateGridCmpmRetail(@Param("custId") String custId, @Param("deptCode") String deptCode,
|
||||
@Param("userName") String userName, @Param("nickName") String nickName,
|
||||
@Param("outletId") Long outletId, @Param("outletName") String outletName,
|
||||
@Param("branchId") Long branchId, @Param("branchName") String branchName);
|
||||
|
||||
List<String> getAllCustLevel();
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ruoyi.ibs.cmpm.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmTransferListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpmTransfer;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmTransferVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/26
|
||||
**/
|
||||
@Mapper
|
||||
public interface GridCmpmTransferMapper extends BaseMapper<GridCmpmTransfer> {
|
||||
|
||||
List<GridCmpmTransferVO> getGridCmpmTransferList(GridCmpmTransferListDTO gridCmpmTransferListDTO);
|
||||
|
||||
List<GridCmpmTransferVO> getGridCmpmTransferHistoryList(GridCmpmTransferListDTO gridCmpmTransferListDTO);
|
||||
|
||||
Long checkExistTransferCust(@Param("custKey") String custKey, @Param ("userName") String userName);
|
||||
|
||||
Long batchInsert(@Param("gridCmpmTransferList") List<GridCmpmTransfer> gridCmpmTransferList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.ibs.cmpm.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustQueryDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustReachListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.VisitCustReach;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.VisitCustReachListVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.VisitCustReachVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Mapper
|
||||
public interface VisitCustReachMapper extends BaseMapper<VisitCustReach> {
|
||||
|
||||
List<VisitCustReachVO> queryVisitCust(VisitCustQueryDTO visitCustQueryDTO);
|
||||
|
||||
Page<VisitCustReachListVO> queryVisitCustReachList(VisitCustReachListDTO visitCustReachListDTO);
|
||||
|
||||
List<VisitCustReachListVO> queryVisitCustReachListByCustId(String custId);
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
package com.ruoyi.ibs.cmpm.service;
|
||||
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.ibs.cmpm.mapper.GridCmpmMapper;
|
||||
import com.ruoyi.ibs.customerselect.domain.ContinuousParam;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustBaseInfo;
|
||||
import com.ruoyi.ibs.customerselect.domain.DiscreteParam;
|
||||
import com.ruoyi.ibs.customerselect.domain.vo.GridRelateVO;
|
||||
import com.ruoyi.ibs.customerselect.mapper.GridSelectMapper;
|
||||
import com.ruoyi.ibs.customerselect.mapper.GridSummarCountMapper;
|
||||
import com.ruoyi.ibs.customerselect.service.MyCustomerGridSelectService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/21
|
||||
**/
|
||||
@Service
|
||||
public class GridCmpmCustService {
|
||||
|
||||
@Resource
|
||||
private GridCmpmMapper gridCmpmMapper;
|
||||
|
||||
@Resource
|
||||
private GridCmpmService gridCmpmService;
|
||||
|
||||
@Resource
|
||||
private GridSelectMapper gridSelectMapper;
|
||||
|
||||
@Resource
|
||||
private MyCustomerGridSelectService myCustomerGridSelectService;
|
||||
|
||||
@Autowired
|
||||
private GridSummarCountMapper gridSummarCountMapper;
|
||||
|
||||
/**
|
||||
* 海宁查询绩效管户
|
||||
* 查询归属于该用户的客户,不考虑机构层级
|
||||
* @param custBaseInfoParam
|
||||
* @return
|
||||
*/
|
||||
public List<CustBaseInfo> selectCustInfoList(CustBaseInfo custBaseInfoParam) {
|
||||
custBaseInfoParam.setCmpmUserName(SecurityUtils.getUsername());
|
||||
custBaseInfoParam.setDeptCode(SecurityUtils.getHeadId());
|
||||
|
||||
//分页参数
|
||||
custBaseInfoParam.setStart((custBaseInfoParam.getNum() - 1) * custBaseInfoParam.getSize());
|
||||
custBaseInfoParam.setEnd(custBaseInfoParam.getNum() * custBaseInfoParam.getSize());
|
||||
|
||||
StringBuilder metricStrBuilder = new StringBuilder();
|
||||
if (custBaseInfoParam.getContinuousParams() != null && custBaseInfoParam.getContinuousParams().size() > 0){
|
||||
for (ContinuousParam info : custBaseInfoParam.getContinuousParams()){
|
||||
if (metricStrBuilder.length() > 0) {
|
||||
metricStrBuilder.append(",");
|
||||
}
|
||||
metricStrBuilder.append(gridSummarCountMapper.selectDictLabelByDictValue(info.getKey()));
|
||||
}
|
||||
}
|
||||
if (custBaseInfoParam.getDiscreteParams() != null && custBaseInfoParam.getDiscreteParams().size() > 0){
|
||||
for (DiscreteParam info:custBaseInfoParam.getDiscreteParams()){
|
||||
if (metricStrBuilder.length() > 0) {
|
||||
metricStrBuilder.append(",");
|
||||
}
|
||||
metricStrBuilder.append(gridSummarCountMapper.selectDictLabelByDictValue(info.getKey()));
|
||||
}
|
||||
}
|
||||
List<CustBaseInfo> collect = gridCmpmMapper.selectCustInfoFromGridCmpm(custBaseInfoParam);
|
||||
|
||||
List<String> custIds = collect.stream().map(CustBaseInfo::getCustId).collect(Collectors.toList());
|
||||
if (!custIds.isEmpty()){
|
||||
List<GridRelateVO> drawGridRelate = gridSelectMapper.getDrawGridRelate(custIds);
|
||||
List<GridRelateVO> regionGridRelate = gridSelectMapper.getRegionGridRelate(custIds);
|
||||
List<GridRelateVO> virtualGridRelate = myCustomerGridSelectService.getVirtualGridRelate(custIds);
|
||||
for (CustBaseInfo custBaseInfo : collect) {
|
||||
drawGridRelate.stream().filter(gridRelateVO -> gridRelateVO.getCustId().equals(custBaseInfo.getCustId())).findFirst().ifPresent(gridRelateVO -> {
|
||||
custBaseInfo.setDrawBranchNames(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setDrawOutletNames(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setDrawUserNames(gridRelateVO.getUserNames());
|
||||
custBaseInfo.setDrawGridName(gridRelateVO.getGridNames());
|
||||
});
|
||||
regionGridRelate.stream().filter(gridRelateVO -> gridRelateVO.getCustId().equals(custBaseInfo.getCustId())).findFirst().ifPresent(gridRelateVO -> {
|
||||
custBaseInfo.setRegionBranchNames(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setRegionOutletNames(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setRegionUserNames(gridRelateVO.getUserNames());
|
||||
custBaseInfo.setRegionTopGridName(gridRelateVO.getTopGridName());
|
||||
custBaseInfo.setRegionSecGridName(gridRelateVO.getSecGridName());
|
||||
|
||||
custBaseInfo.setBelongBranchName(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setBelongOutletName(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setBelongUserNameList(gridRelateVO.getUserNames());
|
||||
});
|
||||
virtualGridRelate.stream().filter(gridRelateVO -> gridRelateVO.getCustId().equals(custBaseInfo.getCustId())).findFirst().ifPresent(gridRelateVO -> {
|
||||
custBaseInfo.setVirtualBranchNames(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setVirtualOutletNames(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setVirtualUserNames(gridRelateVO.getUserNames());
|
||||
custBaseInfo.setVirtualGridName(gridRelateVO.getGridNames());
|
||||
});
|
||||
}
|
||||
}
|
||||
return collect;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用查询绩效管户关系,考虑机构层级
|
||||
* @param custBaseInfoParam
|
||||
* @return
|
||||
*/
|
||||
public List<CustBaseInfo> queryCustInfoList(CustBaseInfo custBaseInfoParam) {
|
||||
custBaseInfoParam.setDeptCode(SecurityUtils.getHeadId());
|
||||
String userRole = SecurityUtils.userRole();
|
||||
if("branch".equalsIgnoreCase(userRole)){
|
||||
custBaseInfoParam.setCmpmBranchId(SecurityUtils.getDeptId());
|
||||
}else if("outlet".equalsIgnoreCase(userRole)){
|
||||
custBaseInfoParam.setCmpmOutletId(SecurityUtils.getDeptId());
|
||||
}else if ("manager".equalsIgnoreCase(userRole)){
|
||||
custBaseInfoParam.setCmpmUserName(SecurityUtils.getUsername());
|
||||
}
|
||||
//分页参数
|
||||
custBaseInfoParam.setStart((custBaseInfoParam.getNum() - 1) * custBaseInfoParam.getSize());
|
||||
custBaseInfoParam.setEnd(custBaseInfoParam.getNum() * custBaseInfoParam.getSize());
|
||||
|
||||
StringBuilder metricStrBuilder = new StringBuilder();
|
||||
if (custBaseInfoParam.getContinuousParams() != null && custBaseInfoParam.getContinuousParams().size() > 0){
|
||||
for (ContinuousParam info : custBaseInfoParam.getContinuousParams()){
|
||||
if (metricStrBuilder.length() > 0) {
|
||||
metricStrBuilder.append(",");
|
||||
}
|
||||
metricStrBuilder.append(gridSummarCountMapper.selectDictLabelByDictValue(info.getKey()));
|
||||
}
|
||||
}
|
||||
if (custBaseInfoParam.getDiscreteParams() != null && custBaseInfoParam.getDiscreteParams().size() > 0){
|
||||
for (DiscreteParam info:custBaseInfoParam.getDiscreteParams()){
|
||||
if (metricStrBuilder.length() > 0) {
|
||||
metricStrBuilder.append(",");
|
||||
}
|
||||
metricStrBuilder.append(gridSummarCountMapper.selectDictLabelByDictValue(info.getKey()));
|
||||
}
|
||||
}
|
||||
List<CustBaseInfo> collect = gridCmpmMapper.queryCustInfoFromGridCmpm(custBaseInfoParam);
|
||||
|
||||
List<String> custIds = collect.stream().map(CustBaseInfo::getCustId).collect(Collectors.toList());
|
||||
if (!custIds.isEmpty()){
|
||||
List<GridRelateVO> drawGridRelate = gridSelectMapper.getDrawGridRelate(custIds);
|
||||
List<GridRelateVO> regionGridRelate = gridSelectMapper.getRegionGridRelate(custIds);
|
||||
List<GridRelateVO> virtualGridRelate = myCustomerGridSelectService.getVirtualGridRelate(custIds);
|
||||
for (CustBaseInfo custBaseInfo : collect) {
|
||||
drawGridRelate.stream().filter(gridRelateVO -> gridRelateVO.getCustId().equals(custBaseInfo.getCustId())).findFirst().ifPresent(gridRelateVO -> {
|
||||
custBaseInfo.setDrawBranchNames(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setDrawOutletNames(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setDrawUserNames(gridRelateVO.getUserNames());
|
||||
custBaseInfo.setDrawGridName(gridRelateVO.getGridNames());
|
||||
});
|
||||
regionGridRelate.stream().filter(gridRelateVO -> gridRelateVO.getCustId().equals(custBaseInfo.getCustId())).findFirst().ifPresent(gridRelateVO -> {
|
||||
custBaseInfo.setRegionBranchNames(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setRegionOutletNames(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setRegionUserNames(gridRelateVO.getUserNames());
|
||||
custBaseInfo.setRegionTopGridName(gridRelateVO.getTopGridName());
|
||||
custBaseInfo.setRegionSecGridName(gridRelateVO.getSecGridName());
|
||||
|
||||
custBaseInfo.setBelongBranchName(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setBelongOutletName(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setBelongUserNameList(gridRelateVO.getUserNames());
|
||||
});
|
||||
virtualGridRelate.stream().filter(gridRelateVO -> gridRelateVO.getCustId().equals(custBaseInfo.getCustId())).findFirst().ifPresent(gridRelateVO -> {
|
||||
custBaseInfo.setVirtualBranchNames(gridRelateVO.getBranchNames());
|
||||
custBaseInfo.setVirtualOutletNames(gridRelateVO.getOutletNames());
|
||||
custBaseInfo.setVirtualUserNames(gridRelateVO.getUserNames());
|
||||
custBaseInfo.setVirtualGridName(gridRelateVO.getGridNames());
|
||||
});
|
||||
}
|
||||
}
|
||||
return collect;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,282 @@
|
||||
package com.ruoyi.ibs.cmpm.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.CustLevelDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.CustManagerDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpm;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailCustLevelManagerDetailVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailResultVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmVO;
|
||||
import com.ruoyi.ibs.cmpm.mapper.GridCmpmMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/15
|
||||
**/
|
||||
@Service
|
||||
public class GridCmpmService {
|
||||
|
||||
|
||||
@Resource
|
||||
private GridCmpmMapper gridCmpmMapper;
|
||||
|
||||
@Resource
|
||||
private GridCmpmTransferService gridCmpmTransferService;
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
private final String CUST_LEVEL_COUNT_KEY = "GRID_CMPM_CUST_LEVEL_COUNT_";
|
||||
|
||||
public List<GridCmpmVO> selectManageList(GridCmpmListDTO gridCmpmRetailListDTO){
|
||||
String userRole = SecurityUtils.userRole();
|
||||
if("branch".equalsIgnoreCase(userRole)){
|
||||
gridCmpmRetailListDTO.setBranchId(SecurityUtils.getDeptId());
|
||||
}else if("outlet".equalsIgnoreCase(userRole)){
|
||||
gridCmpmRetailListDTO.setOutletId(SecurityUtils.getDeptId());
|
||||
}else if ("manager".equalsIgnoreCase(userRole)){
|
||||
gridCmpmRetailListDTO.setCurUserName(SecurityUtils.getUsername());
|
||||
}
|
||||
List<GridCmpm> gridCmpms = gridCmpmMapper.selectManageList(gridCmpmRetailListDTO);
|
||||
return gridCmpms.stream().map(gridCmpm -> {
|
||||
GridCmpmVO gridCmpmVO = new GridCmpmVO();
|
||||
BeanUtils.copyProperties(gridCmpm,gridCmpmVO);
|
||||
if (SecurityUtils.userRole().equals("branch") || SecurityUtils.userRole().equals("head") || SecurityUtils.isHead()){
|
||||
gridCmpmVO.setTransferFlag( !gridCmpmTransferService.checkExistTransferCust(gridCmpm.getCustId(), gridCmpm.getUserName()) );
|
||||
}else{
|
||||
// 无法移交条件: 1.客户存在移交审批中的记录 2.客户经理为当前用户
|
||||
gridCmpmVO.setTransferFlag( (!gridCmpmTransferService.checkExistTransferCust(gridCmpm.getCustId(), gridCmpm.getUserName())) && gridCmpm.getUserName().equals(SecurityUtils.getUsername()) );
|
||||
}
|
||||
return gridCmpmVO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<GridCmpmVO> selectCommonList(GridCmpmListDTO gridCmpmListDTO){
|
||||
List<GridCmpm> gridCmpms = gridCmpmMapper.selectCommonList(gridCmpmListDTO);
|
||||
return gridCmpms.stream().map(gridCmpm -> {
|
||||
GridCmpmVO gridCmpmRetailVO = new GridCmpmVO();
|
||||
BeanUtils.copyProperties(gridCmpm,gridCmpmRetailVO);
|
||||
gridCmpmRetailVO.setTransferFlag(!gridCmpmTransferService.checkExistTransferCust(gridCmpm.getCustId(), null));
|
||||
return gridCmpmRetailVO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public String getCustLevelByCust(CustLevelDTO custLevelDTO){
|
||||
if (custLevelDTO.getCustType().equals("0") || custLevelDTO.getCustType().equals("1")){
|
||||
custLevelDTO.setGridType("retail");
|
||||
return gridCmpmMapper.getCustLevel(custLevelDTO);
|
||||
}else if (Objects.nonNull(custLevelDTO.getAccountNo())){
|
||||
custLevelDTO.setGridType("corporate_account");
|
||||
}else {
|
||||
custLevelDTO.setGridType("corporate");
|
||||
}
|
||||
// todo 公司部未上
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<String> getAllCustLevel(String gridType){
|
||||
String label = gridType +"_"+ SecurityUtils.getHeadId();
|
||||
ArrayList<SysDictData> custLevelList = redisCache.getCacheObject("sys_dict:grid_cmpm_cust_level");
|
||||
return custLevelList.stream().filter(sysDictData -> sysDictData.getDictLabel().equals(label)).map(sysDictData -> sysDictData.getDictValue()).sorted().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<DwbRetailCustLevelManagerDetailVO> selectCustManagerList(CustManagerDTO custManagerDTO) {
|
||||
String userRole = SecurityUtils.userRole();
|
||||
if (userRole.equals("manager")){
|
||||
//客户经理查自己
|
||||
custManagerDTO.setManagerId(SecurityUtils.getUsername());
|
||||
}else if (userRole.equals("outlet")){
|
||||
//网点管理员查网点
|
||||
custManagerDTO.setOutletId(String.valueOf(SecurityUtils.getDeptId()));
|
||||
}else if (userRole.equals("branch")){
|
||||
//支行管理员查支行
|
||||
custManagerDTO.setBranchId(String.valueOf(SecurityUtils.getDeptId()));
|
||||
}
|
||||
//其他角色查全部
|
||||
return gridCmpmMapper.getCustManagerList(custManagerDTO);
|
||||
}
|
||||
|
||||
public int custLevelCount(CustManagerDTO custManagerDTO) {
|
||||
String userRole = SecurityUtils.userRole();
|
||||
if (userRole.equals("manager")){
|
||||
//客户经理查自己
|
||||
custManagerDTO.setManagerId(SecurityUtils.getUsername());
|
||||
}else if (userRole.equals("outlet")){
|
||||
//网点管理员查网点
|
||||
custManagerDTO.setOutletId(String.valueOf(SecurityUtils.getDeptId()));
|
||||
}else if (userRole.equals("branch")){
|
||||
//支行管理员查支行
|
||||
custManagerDTO.setBranchId(String.valueOf(SecurityUtils.getDeptId()));
|
||||
}
|
||||
return gridCmpmMapper.getCustLevelCount(custManagerDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取AUM统计数据(只查redis)
|
||||
*/
|
||||
public DwbRetailResultVO selectCustManagerResult(){
|
||||
String userRole = SecurityUtils.userRole();
|
||||
String deptId = String.valueOf(SecurityUtils.getDeptId());
|
||||
String key ;
|
||||
if (userRole.equals("manager")){
|
||||
key = CUST_LEVEL_COUNT_KEY + userRole + "_" + SecurityUtils.getUsername();
|
||||
}else if (userRole.equals("outlet") || userRole.equals("branch")){
|
||||
key = CUST_LEVEL_COUNT_KEY + userRole + "_" + deptId;
|
||||
}else {
|
||||
key = CUST_LEVEL_COUNT_KEY + userRole;
|
||||
}
|
||||
try {
|
||||
if (redisCache.hasKey(key)){
|
||||
String json = redisCache.getCacheObject(key);
|
||||
if (json != null && !json.isEmpty()) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
return objectMapper.readValue(json, DwbRetailResultVO.class);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException("反序列化Redis缓存数据异常:" + key + e.getMessage());
|
||||
}
|
||||
return new DwbRetailResultVO();
|
||||
}
|
||||
|
||||
/**
|
||||
* 每月定时设置统计数据
|
||||
*/
|
||||
public void setCustManagerResultMonthly() {
|
||||
String[] roles = {"manager", "outlet", "branch", "head", "public", "private", "ops"};
|
||||
for (String role : roles) {
|
||||
setCustManagerResultByRole(role);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色获取AUM统计数据
|
||||
*/
|
||||
private void setCustManagerResultByRole(String userRole) {
|
||||
CustManagerDTO custManagerDTO = new CustManagerDTO();
|
||||
|
||||
if (userRole.equals("manager")){
|
||||
List<String> managerList = gridCmpmMapper.selectManagerList();
|
||||
if (managerList != null){
|
||||
for (String manager : managerList) {
|
||||
String key = CUST_LEVEL_COUNT_KEY + userRole + "_" + manager;
|
||||
custManagerDTO.setManagerId(manager);
|
||||
processAndCacheResult(key, custManagerDTO);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
//非客户经理角色——根据角色获取deptIds
|
||||
List<String> deptIds = gridCmpmMapper.selectDeptListByRole(userRole);
|
||||
if (deptIds.contains("head")){
|
||||
String key = CUST_LEVEL_COUNT_KEY + userRole;
|
||||
processAndCacheResult(key, custManagerDTO);
|
||||
}else {
|
||||
for (String deptId : deptIds) {
|
||||
//redisKey用于存入redis供后续查询
|
||||
String key = CUST_LEVEL_COUNT_KEY + userRole + "_" + deptId;
|
||||
switch (userRole) {
|
||||
case "outlet":
|
||||
custManagerDTO.setOutletId(deptId);
|
||||
break;
|
||||
case "branch":
|
||||
custManagerDTO.setBranchId(deptId);
|
||||
break;
|
||||
}
|
||||
processAndCacheResult(key, custManagerDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理并缓存客户经理或机构的统计结果
|
||||
*
|
||||
* @param key Redis缓存key
|
||||
* @param custManagerDTO 查询条件DTO
|
||||
* @return 处理后的VO对象
|
||||
*/
|
||||
private void processAndCacheResult(String key, CustManagerDTO custManagerDTO) {
|
||||
// 查出总资产余额、总资产余额较上月变动、总资产月日均
|
||||
DwbRetailResultVO vo = gridCmpmMapper.getCustManagerResult(custManagerDTO);
|
||||
if (vo.getCustAumMonthAvg() != null && vo.getCustAumMonthAvgLm() != null) {
|
||||
vo.setCustAumMonthAvgCompLm(vo.getCustAumMonthAvg().subtract(vo.getCustAumMonthAvgLm()));
|
||||
} else {
|
||||
vo.setCustAumMonthAvgCompLm(BigDecimal.ZERO);
|
||||
}
|
||||
if (vo.getCustAumBal() != null && vo.getAumBalCompLm() != null) {
|
||||
vo.setCustAumBalLm(vo.getCustAumBal().subtract(vo.getAumBalCompLm()));
|
||||
} else {
|
||||
vo.setCustAumBalLm(BigDecimal.ZERO);
|
||||
}
|
||||
// 获取当前各星级客户数
|
||||
Map<String, Integer> currentLevelCountMap = getCustLevelCountMap(custManagerDTO, "now");
|
||||
// 获取上月各星级客户数
|
||||
Map<String, Integer> historyLevelCountMap = getCustLevelCountMap(custManagerDTO, "last");
|
||||
Map<String, Integer> custLevelCompLm = calculateLevelChanges(historyLevelCountMap, currentLevelCountMap);
|
||||
vo.setCustLevelCompLm(custLevelCompLm);
|
||||
vo.setCustLevelCount(currentLevelCountMap);
|
||||
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try{
|
||||
String json = objectMapper.writeValueAsString(vo);
|
||||
redisCache.setCacheObject(key, json, 31, TimeUnit.DAYS);
|
||||
}catch (Exception e){
|
||||
throw new ServiceException("JSON转换异常" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private Map<String, Integer> getCustLevelCountMap(CustManagerDTO custManagerDTO, String time){
|
||||
List<String> custLevelList = gridCmpmMapper.getCustLevelList();
|
||||
//查出各星级客户数
|
||||
Map<String, Integer> custLevelCountMap = new HashMap<>();
|
||||
for (String custLevel : custLevelList) {
|
||||
custManagerDTO.setCustLevel(custLevel);
|
||||
int count = gridCmpmMapper.getCustCountByLevel(custManagerDTO, time);
|
||||
custLevelCountMap.put(custLevel, count);
|
||||
}
|
||||
return custLevelCountMap;
|
||||
}
|
||||
|
||||
// 计算客户等级变化情况
|
||||
private Map<String, Integer> calculateLevelChanges(Map<String, Integer> historyMap, Map<String, Integer> currentMap) {
|
||||
Map<String, Integer> changesMap = new HashMap<>();
|
||||
|
||||
if (historyMap == null) {
|
||||
// 如果没有历史数据,所有当前数据都是新增的
|
||||
for (Map.Entry<String, Integer> entry : currentMap.entrySet()) {
|
||||
changesMap.put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
return changesMap;
|
||||
}
|
||||
// 计算每个等级的变化量(当前 - 历史 = 变化量)
|
||||
// 正数表示增加,负数表示减少
|
||||
for (String custLevel : currentMap.keySet()) {
|
||||
Integer currentCount = currentMap.getOrDefault(custLevel, 0);
|
||||
Integer historyCount = historyMap.getOrDefault(custLevel, 0);
|
||||
changesMap.put(custLevel, currentCount - historyCount);
|
||||
}
|
||||
|
||||
// 处理历史数据中有但当前数据中没有的等级(这些等级的客户数变为0)
|
||||
for (String custLevel : historyMap.keySet()) {
|
||||
if (!currentMap.containsKey(custLevel)) {
|
||||
changesMap.put(custLevel, -historyMap.get(custLevel));
|
||||
}
|
||||
}
|
||||
return changesMap;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,361 @@
|
||||
package com.ruoyi.ibs.cmpm.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysDept;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.*;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpm;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpmTransfer;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmClaimVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmTransferVO;
|
||||
import com.ruoyi.ibs.cmpm.mapper.GridCmpmMapper;
|
||||
import com.ruoyi.ibs.cmpm.mapper.GridCmpmTransferMapper;
|
||||
import com.ruoyi.system.service.ISysDeptService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/17
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
@EnableAsync
|
||||
public class GridCmpmTransferService {
|
||||
|
||||
@Resource
|
||||
private GridCmpmTransferMapper gridCmpmTransferMapper;
|
||||
|
||||
@Resource
|
||||
private ISysDeptService sysDeptService;
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private GridCmpmUpdateService gridCmpmUpdateService;
|
||||
|
||||
|
||||
@Resource
|
||||
private GridCmpmMapper gridCmpmMapper;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createGridCmpmTransfer(GridCmpmTransferDTO gridCmpmTransferDTO){
|
||||
if (gridCmpmTransferDTO.getPrevUserName().equals(gridCmpmTransferDTO.getNextUserName())){
|
||||
throw new ServiceException("流程前后不可选择相同的客户经理");
|
||||
}
|
||||
GridCmpmTransfer gridCmpmTransfer = new GridCmpmTransfer();
|
||||
gridCmpmTransfer.setTransferLabel("0");
|
||||
gridCmpmTransfer.setGridType(gridCmpmTransferDTO.getGridType());
|
||||
gridCmpmTransfer.setPrevUserName(gridCmpmTransferDTO.getPrevUserName());
|
||||
gridCmpmTransfer.setNextUserName(gridCmpmTransferDTO.getNextUserName());
|
||||
|
||||
UserDeptDTO prevUserDeptDTO = getUserDeptDTO(gridCmpmTransferDTO.getPrevUserName());
|
||||
gridCmpmTransfer.setPrevBranchId(prevUserDeptDTO.getBranchId());
|
||||
gridCmpmTransfer.setPrevOutletId(prevUserDeptDTO.getOutletId());
|
||||
UserDeptDTO nextUserDeptDTO = getUserDeptDTO(gridCmpmTransferDTO.getNextUserName());
|
||||
gridCmpmTransfer.setNextBranchId(nextUserDeptDTO.getBranchId());
|
||||
gridCmpmTransfer.setNextOutletId(nextUserDeptDTO.getOutletId());
|
||||
gridCmpmTransfer.setHeadId(prevUserDeptDTO.getDeptId().toString().substring(0,3));
|
||||
|
||||
GridCmpmTransfer statusAndType = setTransferStatusAndType(prevUserDeptDTO,nextUserDeptDTO);
|
||||
gridCmpmTransfer.setTransferType(statusAndType.getTransferType());
|
||||
gridCmpmTransfer.setTransferStatus(statusAndType.getTransferStatus());
|
||||
|
||||
if (gridCmpmTransferDTO.getIsFullTransfer()){
|
||||
gridCmpmUpdateService.createFullTransferApprove(gridCmpmTransfer);
|
||||
}else{
|
||||
int i = 1;
|
||||
for (TransferCustDTO transferCustDTO : gridCmpmTransferDTO.getCustList()) {
|
||||
GridCmpmTransfer transfer = new GridCmpmTransfer();
|
||||
BeanUtils.copyProperties(gridCmpmTransfer, transfer);
|
||||
BeanUtils.copyProperties(transferCustDTO, transfer);
|
||||
gridCmpmTransferMapper.insert(transfer);
|
||||
log.info("开始插入第{}个审批,总共有{}个", i, gridCmpmTransferDTO.getCustList().size());
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return "审批流程创建成功";
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createClaim(GridCmpmClaimDTO gridCmpmClaimDTO){
|
||||
int i = 1;
|
||||
UserDeptDTO nextUserDeptDTO = getUserDeptDTO(gridCmpmClaimDTO.getUserName());
|
||||
for (TransferCustDTO transferCustDTO : gridCmpmClaimDTO.getCustList()) {
|
||||
GridCmpm gridCmpm = gridCmpmMapper.getGridCmpmByCustKey(transferCustDTO.getCustId(),
|
||||
transferCustDTO.getAccountNo(), transferCustDTO.getPrevUserName(),
|
||||
gridCmpmClaimDTO.getGridType(), SecurityUtils.getHeadId());
|
||||
|
||||
if (gridCmpmClaimDTO.getUserName().equals(gridCmpm.getUserName())){
|
||||
throw new ServiceException("流程前后不可选择相同的客户经理");
|
||||
}
|
||||
GridCmpmTransfer gridCmpmTransfer = new GridCmpmTransfer();
|
||||
BeanUtils.copyProperties(transferCustDTO, gridCmpmTransfer);
|
||||
|
||||
gridCmpmTransfer.setTransferLabel("1");
|
||||
gridCmpmTransfer.setGridType(gridCmpmClaimDTO.getGridType());
|
||||
gridCmpmTransfer.setCustType(gridCmpm.getCustType());
|
||||
gridCmpmTransfer.setPrevUserName(gridCmpm.getUserName());
|
||||
gridCmpmTransfer.setNextUserName(gridCmpmClaimDTO.getUserName());
|
||||
|
||||
UserDeptDTO prevUserDeptDTO = getUserDeptDTO(gridCmpm.getUserName());
|
||||
gridCmpmTransfer.setPrevBranchId(prevUserDeptDTO.getBranchId());
|
||||
gridCmpmTransfer.setPrevOutletId(prevUserDeptDTO.getOutletId());
|
||||
gridCmpmTransfer.setNextBranchId(nextUserDeptDTO.getBranchId());
|
||||
gridCmpmTransfer.setNextOutletId(nextUserDeptDTO.getOutletId());
|
||||
gridCmpmTransfer.setHeadId(prevUserDeptDTO.getDeptId().toString().substring(0,3));
|
||||
|
||||
GridCmpmTransfer statusAndType = setTransferStatusAndType(prevUserDeptDTO,nextUserDeptDTO);
|
||||
gridCmpmTransfer.setTransferType(statusAndType.getTransferType());
|
||||
gridCmpmTransfer.setTransferStatus(statusAndType.getTransferStatus());
|
||||
|
||||
gridCmpmTransferMapper.insert(gridCmpmTransfer);
|
||||
log.info("开始插入第{}个审批,总共有{}个", i, gridCmpmClaimDTO.getCustList().size());
|
||||
i++;
|
||||
}
|
||||
|
||||
return "审批流程创建成功";
|
||||
}
|
||||
|
||||
private GridCmpmTransfer setTransferStatusAndType (UserDeptDTO prevUserDeptDTO, UserDeptDTO nextUserDeptDTO){
|
||||
GridCmpmTransfer gridCmpmTransfer = new GridCmpmTransfer();
|
||||
if (prevUserDeptDTO.getDeptType().equals("outlet")){
|
||||
gridCmpmTransfer.setTransferStatus("0");
|
||||
// 网点相同 网点内移交
|
||||
if(Objects.nonNull(nextUserDeptDTO.getOutletId()) && prevUserDeptDTO.getOutletId().equals(nextUserDeptDTO.getOutletId())){
|
||||
gridCmpmTransfer.setTransferType(0);
|
||||
// 支行号相同 支行内移交
|
||||
}else if (Objects.nonNull(nextUserDeptDTO.getBranchId()) && prevUserDeptDTO.getBranchId().equals(nextUserDeptDTO.getBranchId())){
|
||||
gridCmpmTransfer.setTransferType(1);
|
||||
// 跨支行移交
|
||||
}else {
|
||||
gridCmpmTransfer.setTransferType(2);
|
||||
}
|
||||
}else if (prevUserDeptDTO.getDeptType().equals("branch")){
|
||||
gridCmpmTransfer.setTransferStatus("1");
|
||||
|
||||
if (Objects.nonNull(nextUserDeptDTO.getBranchId()) && prevUserDeptDTO.getBranchId().equals(nextUserDeptDTO.getBranchId())){
|
||||
gridCmpmTransfer.setTransferType(1);
|
||||
}else{
|
||||
gridCmpmTransfer.setTransferType(2);
|
||||
}
|
||||
}else if (prevUserDeptDTO.getDeptType().equals("head")){
|
||||
gridCmpmTransfer.setTransferType(2);
|
||||
gridCmpmTransfer.setTransferStatus("2");
|
||||
}
|
||||
return gridCmpmTransfer;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createCommonClaim(GridCmpmClaimDTO gridCmpmClaimDTO ){
|
||||
GridCmpmTransfer gridCmpmTransfer = new GridCmpmTransfer();
|
||||
gridCmpmTransfer.setTransferLabel("1");
|
||||
gridCmpmTransfer.setGridType(gridCmpmClaimDTO.getGridType());
|
||||
gridCmpmTransfer.setNextUserName(gridCmpmClaimDTO.getUserName());
|
||||
UserDeptDTO userDeptDTO = getUserDeptDTO(gridCmpmClaimDTO.getUserName());
|
||||
gridCmpmTransfer.setNextBranchId(userDeptDTO.getBranchId());
|
||||
gridCmpmTransfer.setNextOutletId(userDeptDTO.getOutletId());
|
||||
gridCmpmTransfer.setHeadId(userDeptDTO.getDeptId().toString().substring(0,3));
|
||||
|
||||
int i = 1;
|
||||
for (TransferCustDTO transferCustDTO : gridCmpmClaimDTO.getCustList()) {
|
||||
GridCmpmTransfer transfer = new GridCmpmTransfer();
|
||||
BeanUtils.copyProperties(gridCmpmTransfer, transfer);
|
||||
BeanUtils.copyProperties(transferCustDTO, transfer);
|
||||
|
||||
transfer.setPrevBranchId(userDeptDTO.getBranchId());
|
||||
transfer.setPrevOutletId(userDeptDTO.getOutletId());
|
||||
if (userDeptDTO.getDeptType().equals("outlet")){
|
||||
transfer.setTransferType(1);
|
||||
transfer.setTransferStatus("0");
|
||||
}else if (userDeptDTO.getDeptType().equals("branch")){
|
||||
transfer.setTransferType(1);
|
||||
transfer.setTransferStatus("1");
|
||||
} else if (userDeptDTO.getDeptType().equals("head")){
|
||||
transfer.setTransferType(2);
|
||||
transfer.setTransferStatus("2");
|
||||
}
|
||||
gridCmpmTransferMapper.insert(transfer);
|
||||
log.info("开始插入第{}个认领审批,总共有{}个:", i, gridCmpmClaimDTO.getCustList().size(), transfer);
|
||||
i++;
|
||||
}
|
||||
return "公共池认领审批流程创建成功";
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String adjustGridCmpm(GridCmpmAdjustDTO gridCmpmAdjustDTO){
|
||||
if (!SecurityUtils.userRole().equals("branch") && !SecurityUtils.userRole().equals("head") &&!SecurityUtils.isHead()){
|
||||
throw new ServiceException("没有权限");
|
||||
}
|
||||
SysUser sysUser = sysUserService.selectUserByUserName(gridCmpmAdjustDTO.getUserName());
|
||||
UserDeptDTO userDeptDTO = getUserDeptDTO(gridCmpmAdjustDTO.getUserName());
|
||||
gridCmpmAdjustDTO.setDeptCode(SecurityUtils.getHeadId());
|
||||
for (TransferCustDTO transferCustDTO : gridCmpmAdjustDTO.getCustList()) {
|
||||
GridCmpm gridCmpm = gridCmpmMapper.getGridCmpmByCustKey(transferCustDTO.getCustId(),
|
||||
transferCustDTO.getAccountNo(), transferCustDTO.getPrevUserName(),
|
||||
gridCmpmAdjustDTO.getGridType(), gridCmpmAdjustDTO.getDeptCode());
|
||||
if (Objects.isNull(gridCmpm)){
|
||||
throw new ServiceException("客户不存在");
|
||||
}
|
||||
GridCmpmUpdateDTO gridCmpmUpdateDTO = new GridCmpmUpdateDTO();
|
||||
BeanUtils.copyProperties(gridCmpm, gridCmpmUpdateDTO);
|
||||
gridCmpmUpdateDTO.setDeptCode(gridCmpmAdjustDTO.getDeptCode());
|
||||
gridCmpmUpdateDTO.setPrevUserName(gridCmpm.getUserName());
|
||||
gridCmpmUpdateDTO.setUserName(sysUser.getUserName());
|
||||
gridCmpmUpdateDTO.setNickName(sysUser.getNickName());
|
||||
if (Objects.nonNull(userDeptDTO.getBranchId())){
|
||||
SysDept branch = sysDeptService.selectDeptById(userDeptDTO.getBranchId());
|
||||
gridCmpmUpdateDTO.setBranchId(userDeptDTO.getBranchId());
|
||||
gridCmpmUpdateDTO.setBranchName(branch.getDeptName());
|
||||
}else {
|
||||
gridCmpmUpdateDTO.setBranchId(null);
|
||||
gridCmpmUpdateDTO.setBranchName(null);
|
||||
}
|
||||
if (Objects.nonNull(userDeptDTO.getOutletId())){
|
||||
SysDept outlet = sysDeptService.selectDeptById(userDeptDTO.getOutletId());
|
||||
gridCmpmUpdateDTO.setOutletId(userDeptDTO.getOutletId());
|
||||
gridCmpmUpdateDTO.setOutletName(outlet.getDeptName());
|
||||
}else{
|
||||
gridCmpmUpdateDTO.setOutletId(null);
|
||||
gridCmpmUpdateDTO.setOutletName(null);
|
||||
}
|
||||
gridCmpmMapper.updateGridCmpm(gridCmpmUpdateDTO);
|
||||
log.info("调整绩效网格客户管护:" + gridCmpm);
|
||||
}
|
||||
return "调整成功";
|
||||
}
|
||||
|
||||
public List<GridCmpmTransferVO> getGridCmpmTransferList(GridCmpmTransferListDTO gridCmpmTransferListDTO){
|
||||
if ("manager".equals(SecurityUtils.userRole())){
|
||||
throw new ServiceException("没有权限查控");
|
||||
}
|
||||
gridCmpmTransferListDTO.setUserRole(SecurityUtils.userRole());
|
||||
gridCmpmTransferListDTO.setDeptId(SecurityUtils.getDeptId());
|
||||
gridCmpmTransferListDTO.setUserName(SecurityUtils.getUsername());
|
||||
gridCmpmTransferListDTO.setHeadId(SecurityUtils.getHeadId());
|
||||
List<GridCmpmTransferVO> gridCmpmTransferList = gridCmpmTransferMapper.getGridCmpmTransferList(gridCmpmTransferListDTO);
|
||||
return gridCmpmTransferList;
|
||||
}
|
||||
|
||||
public List<GridCmpmTransferVO> getGridCmpmTransferHistoryList(GridCmpmTransferListDTO gridCmpmTransferListDTO){
|
||||
gridCmpmTransferListDTO.setUserRole(SecurityUtils.userRole());
|
||||
gridCmpmTransferListDTO.setDeptId(SecurityUtils.getDeptId());
|
||||
gridCmpmTransferListDTO.setUserName(SecurityUtils.getUsername());
|
||||
gridCmpmTransferListDTO.setHeadId(SecurityUtils.getHeadId());
|
||||
List<GridCmpmTransferVO> gridCmpmTransferHistoryList = gridCmpmTransferMapper.getGridCmpmTransferHistoryList(gridCmpmTransferListDTO);
|
||||
return gridCmpmTransferHistoryList;
|
||||
}
|
||||
|
||||
public Boolean checkExistTransferCust(String custKey, String userName){
|
||||
return gridCmpmTransferMapper.checkExistTransferCust(custKey, userName) > 0;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String approveTransfer(GridCmpmApproveDTO gridCmpmApproveDTO){
|
||||
for (Long id : gridCmpmApproveDTO.getIdList()) {
|
||||
GridCmpmTransfer gridCmpmTransfer = gridCmpmTransferMapper.selectById(id);
|
||||
if (gridCmpmTransfer.getTransferStatus().equals("0")){
|
||||
gridCmpmTransfer.setOutletApprover(SecurityUtils.getUsername());
|
||||
gridCmpmTransfer.setOutletApproveResult(gridCmpmApproveDTO.getApproveResult());
|
||||
gridCmpmTransfer.setOutletApproveTime(DateUtils.getNowDate());
|
||||
}else if (gridCmpmTransfer.getTransferStatus().equals("1")){
|
||||
gridCmpmTransfer.setBranchApprover(SecurityUtils.getUsername());
|
||||
gridCmpmTransfer.setBranchApproveResult(gridCmpmApproveDTO.getApproveResult());
|
||||
gridCmpmTransfer.setBranchApproveTime(DateUtils.getNowDate());
|
||||
}else if (gridCmpmTransfer.getTransferStatus().equals("2")){
|
||||
gridCmpmTransfer.setHeadApprover(SecurityUtils.getUsername());
|
||||
gridCmpmTransfer.setHeadApproveResult(gridCmpmApproveDTO.getApproveResult());
|
||||
gridCmpmTransfer.setHeadApproveTime(DateUtils.getNowDate());
|
||||
}
|
||||
if (gridCmpmApproveDTO.getApproveResult()){
|
||||
gridCmpmTransfer.setTransferStatus(getNextTransferStatus(gridCmpmTransfer.getTransferType(), gridCmpmTransfer.getTransferStatus()));
|
||||
}else{
|
||||
gridCmpmTransfer.setTransferStatus("-1");
|
||||
}
|
||||
if (gridCmpmTransferMapper.updateById(gridCmpmTransfer) > 0 && gridCmpmTransfer.getTransferStatus().equals("3")){
|
||||
gridCmpmUpdateService.updateGridCmpm(gridCmpmTransfer);
|
||||
}
|
||||
}
|
||||
return "审批成功";
|
||||
}
|
||||
|
||||
private String getNextTransferStatus(Integer transferType, String transferStatus){
|
||||
if (transferType == 0){
|
||||
if (transferStatus.equals("0")){
|
||||
return "3";
|
||||
}
|
||||
}else if (transferType == 1){
|
||||
if (transferStatus.equals("0")){
|
||||
return "1";
|
||||
}else if (transferStatus.equals("1")){
|
||||
return "3";
|
||||
}
|
||||
}else if (transferType == 2){
|
||||
if (transferStatus.equals("0")){
|
||||
return "1";
|
||||
}else if (transferStatus.equals("1")){
|
||||
return "2";
|
||||
}else if (transferStatus.equals("2")){
|
||||
return "3";
|
||||
}
|
||||
}
|
||||
return "-1";
|
||||
}
|
||||
|
||||
public UserDeptDTO getUserDeptDTO(String userName){
|
||||
UserDeptDTO userDeptDTO = new UserDeptDTO();
|
||||
SysUser sysUser = sysUserService.selectUserByUserName(userName);
|
||||
userDeptDTO.setDeptId(sysUser.getDeptId());
|
||||
SysDept sysDept = sysDeptService.selectDeptById(sysUser.getDeptId());
|
||||
userDeptDTO.setDeptType(sysDept.getDeptType());
|
||||
if (sysDept.getDeptType().equals("head")){
|
||||
userDeptDTO.setHeadId(sysDept.getDeptId());
|
||||
}else if (sysDept.getDeptType().equals("branch")){
|
||||
userDeptDTO.setBranchId(sysDept.getDeptId());
|
||||
userDeptDTO.setHeadId(sysDept.getParentId());
|
||||
}else if (sysDept.getDeptType().equals("outlet")){
|
||||
userDeptDTO.setOutletId(sysDept.getDeptId());
|
||||
userDeptDTO.setBranchId(sysDept.getParentId());
|
||||
SysDept branchDept = sysDeptService.selectDeptById(sysDept.getParentId());
|
||||
userDeptDTO.setHeadId(branchDept.getParentId());
|
||||
}
|
||||
return userDeptDTO;
|
||||
}
|
||||
|
||||
public List<GridCmpmClaimVO> queryClaimList(String custKey, String gridType){
|
||||
List<GridCmpmClaimVO> gridCmpmClaimVOS = gridCmpmMapper.queryClaimList(SecurityUtils.getHeadId(), gridType, custKey);
|
||||
return gridCmpmClaimVOS.stream().map(gridCmpmClaimVO -> {
|
||||
gridCmpmClaimVO.setClaimFlag(Boolean.TRUE);
|
||||
if (gridType.equals("corproate_account")){
|
||||
if (gridCmpmTransferMapper.checkExistTransferCust(gridCmpmClaimVO.getAccountNo(), gridCmpmClaimVO.getUserName()) > 0){
|
||||
gridCmpmClaimVO.setClaimFlag(Boolean.FALSE);
|
||||
gridCmpmClaimVO.setClaimStatus("该客户存在正在审批的移交或者认领流程");
|
||||
}
|
||||
}else {
|
||||
if (gridCmpmTransferMapper.checkExistTransferCust(gridCmpmClaimVO.getCustId(), gridCmpmClaimVO.getUserName()) > 0){
|
||||
gridCmpmClaimVO.setClaimFlag(Boolean.FALSE);
|
||||
gridCmpmClaimVO.setClaimStatus("该客户存在正在审批的移交或者认领流程");
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(gridCmpmClaimVO.getUserName()) && gridCmpmClaimVO.getUserName().equals(SecurityUtils.getUsername())){
|
||||
gridCmpmClaimVO.setClaimFlag(Boolean.FALSE);
|
||||
gridCmpmClaimVO.setClaimStatus("该客户无须认领");
|
||||
}
|
||||
return gridCmpmClaimVO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.ruoyi.ibs.cmpm.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysDept;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmUpdateDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpm;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpmTransfer;
|
||||
import com.ruoyi.ibs.cmpm.mapper.GridCmpmMapper;
|
||||
import com.ruoyi.ibs.cmpm.mapper.GridCmpmTransferMapper;
|
||||
import com.ruoyi.system.service.ISysDeptService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/10/24
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
@EnableAsync
|
||||
public class GridCmpmUpdateService {
|
||||
|
||||
@Resource
|
||||
private GridCmpmMapper gridCmpmMapper;
|
||||
@Resource
|
||||
private GridCmpmTransferMapper gridCmpmTransferMapper;
|
||||
@Resource
|
||||
private ISysDeptService sysDeptService;
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Async
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateGridCmpm(GridCmpmTransfer gridCmpmTransfer) {
|
||||
GridCmpm gridCmpm = gridCmpmMapper.getGridCmpmByCustKey(gridCmpmTransfer.getCustId(), gridCmpmTransfer.getAccountNo(), gridCmpmTransfer.getPrevUserName(),
|
||||
gridCmpmTransfer.getGridType(), gridCmpmTransfer.getHeadId());
|
||||
if (Objects.isNull(gridCmpm)){
|
||||
throw new ServiceException("绩效网格管户不存在");
|
||||
}
|
||||
|
||||
SysUser sysUser = sysUserService.selectUserByUserName(gridCmpmTransfer.getNextUserName());
|
||||
if (Objects.isNull(sysUser)){
|
||||
throw new ServiceException("移交用户不存在");
|
||||
}
|
||||
gridCmpm.setUserName(sysUser.getUserName());
|
||||
gridCmpm.setNickName(sysUser.getNickName());
|
||||
if(Objects.nonNull(gridCmpmTransfer.getNextBranchId())){
|
||||
SysDept sysDept = sysDeptService.selectDeptById(gridCmpmTransfer.getNextBranchId());
|
||||
gridCmpm.setBranchId(gridCmpmTransfer.getNextBranchId());
|
||||
gridCmpm.setBranchName(sysDept.getDeptName());
|
||||
}else{
|
||||
gridCmpm.setBranchId(null);
|
||||
gridCmpm.setBranchName(null);
|
||||
}
|
||||
if(Objects.nonNull(gridCmpmTransfer.getNextOutletId())){
|
||||
SysDept sysDept = sysDeptService.selectDeptById(gridCmpmTransfer.getNextOutletId());
|
||||
gridCmpm.setOutletId(gridCmpmTransfer.getNextOutletId());
|
||||
gridCmpm.setOutletName(sysDept.getDeptName());
|
||||
}else{
|
||||
gridCmpm.setOutletId(null);
|
||||
gridCmpm.setOutletName(null);
|
||||
}
|
||||
GridCmpmUpdateDTO gridCmpmUpdateDTO = new GridCmpmUpdateDTO();
|
||||
BeanUtils.copyProperties(gridCmpm, gridCmpmUpdateDTO);
|
||||
gridCmpmUpdateDTO.setPrevUserName(gridCmpmTransfer.getPrevUserName());
|
||||
gridCmpmUpdateDTO.setDeptCode(gridCmpmTransfer.getHeadId());
|
||||
gridCmpmMapper.updateGridCmpm(gridCmpmUpdateDTO);
|
||||
log.info("更新绩效网格客户管护:" + gridCmpm);
|
||||
}
|
||||
|
||||
@Async
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createFullTransferApprove(GridCmpmTransfer gridCmpmTransfer){
|
||||
List<GridCmpm> gridCmpms = gridCmpmMapper.getGridCmpmByUserName(gridCmpmTransfer.getPrevUserName(), gridCmpmTransfer.getHeadId(), gridCmpmTransfer.getGridType());
|
||||
if (!gridCmpms.isEmpty()){
|
||||
List<GridCmpmTransfer> gridCmpmTransferList = new ArrayList<>();
|
||||
for (GridCmpm gridCmpm : gridCmpms) {
|
||||
GridCmpmTransfer transfer = new GridCmpmTransfer();
|
||||
BeanUtils.copyProperties(gridCmpmTransfer, transfer);
|
||||
transfer.setCustId(gridCmpm.getCustId());
|
||||
transfer.setCustName(gridCmpm.getCustName());
|
||||
transfer.setCustType(gridCmpm.getCustType());
|
||||
transfer.setAccountNo(gridCmpm.getAccountNo());
|
||||
gridCmpmTransferList.add(transfer);
|
||||
if (gridCmpmTransferList.size() == 1000){
|
||||
gridCmpmTransferMapper.batchInsert(gridCmpmTransferList);
|
||||
gridCmpmTransferList.clear();
|
||||
log.info("开始异步插入第{}个审批,总共有{}个", gridCmpmTransferList.size(), gridCmpms.size());
|
||||
}
|
||||
}
|
||||
if (!gridCmpmTransferList.isEmpty()){
|
||||
gridCmpmTransferMapper.batchInsert(gridCmpmTransferList);
|
||||
}
|
||||
log.info("开始异步插入第{}个审批,总共有{}个", gridCmpmTransferList.size(), gridCmpms.size());
|
||||
}else{
|
||||
log.info("该用户没有客户需要移交: " + gridCmpmTransfer.getPrevUserName());
|
||||
}
|
||||
log.info("全量移交审批流程已插入:" + gridCmpmTransfer.getPrevUserName());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.ruoyi.ibs.cmpm.service;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.github.pagehelper.page.PageMethod;
|
||||
import com.ruoyi.common.core.domain.entity.SysDept;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustQueryDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustReachDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.dto.VisitCustReachListDTO;
|
||||
import com.ruoyi.ibs.cmpm.domain.entity.VisitCustReach;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.VisitCustReachListVO;
|
||||
import com.ruoyi.ibs.cmpm.domain.vo.VisitCustReachVO;
|
||||
import com.ruoyi.ibs.cmpm.mapper.VisitCustReachMapper;
|
||||
import com.ruoyi.system.service.ISysDeptService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/12/11
|
||||
**/
|
||||
@Service
|
||||
public class VisitCustReachService {
|
||||
|
||||
@Resource
|
||||
private VisitCustReachMapper visitCustReachMapper;
|
||||
|
||||
@Resource
|
||||
private ISysDeptService sysDeptService;
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
|
||||
public String saveVisitCustReachDTO(VisitCustReachDTO visitCustReachDTO){
|
||||
VisitCustReach visitCustReach;
|
||||
if (Objects.isNull(visitCustReachDTO.getId())){
|
||||
visitCustReach = new VisitCustReach();
|
||||
BeanUtils.copyProperties(visitCustReachDTO,visitCustReach);
|
||||
visitCustReach.setDeptId(SecurityUtils.getDeptId());
|
||||
visitCustReachMapper.insert(visitCustReach);
|
||||
}else {
|
||||
visitCustReach = visitCustReachMapper.selectById(visitCustReachDTO.getId());
|
||||
BeanUtils.copyProperties(visitCustReachDTO,visitCustReach);
|
||||
visitCustReachMapper.updateById(visitCustReach);
|
||||
}
|
||||
return "客户触达信息已保存";
|
||||
}
|
||||
|
||||
public List<VisitCustReachVO> queryVisitCust(String custName){
|
||||
VisitCustQueryDTO visitCustQueryDTO = new VisitCustQueryDTO();
|
||||
visitCustQueryDTO.setCustName(custName);
|
||||
visitCustQueryDTO.setUserName(SecurityUtils.getUsername());
|
||||
visitCustQueryDTO.setBranchId(getBranchIdByUserName(SecurityUtils.getUsername()));
|
||||
return visitCustReachMapper.queryVisitCust(visitCustQueryDTO);
|
||||
}
|
||||
|
||||
public PageInfo<VisitCustReachListVO> queryVisitCustReachList(VisitCustReachListDTO visitCustReachListDTO){
|
||||
visitCustReachListDTO.setDeptId(SecurityUtils.getDeptId());
|
||||
visitCustReachListDTO.setEditUserName(SecurityUtils.getUsername());
|
||||
if ("manager".equals(SecurityUtils.userRole())){
|
||||
visitCustReachListDTO.setAliasUserName(SecurityUtils.getUsername());
|
||||
}
|
||||
PageMethod.startPage(visitCustReachListDTO.getPageNum(), visitCustReachListDTO.getPageSize());
|
||||
Page<VisitCustReachListVO> visitCustReachListVOPage = visitCustReachMapper.queryVisitCustReachList(visitCustReachListDTO);
|
||||
return visitCustReachListVOPage.toPageInfo();
|
||||
}
|
||||
|
||||
public List<VisitCustReachListVO> queryVisitCustReachListByCustId(String custId){
|
||||
return visitCustReachMapper.queryVisitCustReachListByCustId(custId);
|
||||
}
|
||||
|
||||
private Long getBranchIdByUserName(String userName){
|
||||
SysUser sysUser = sysUserService.selectUserByUserName(userName);
|
||||
SysDept sysDept = sysDeptService.selectDeptById(sysUser.getDeptId());
|
||||
if (sysDept.getDeptType().equals("branch")){
|
||||
return sysDept.getDeptId();
|
||||
}
|
||||
if (sysDept.getDeptType().equals("outlet")){
|
||||
return sysDept.getParentId();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.ruoyi.ibs.custmap.controller;
|
||||
|
||||
import com.ruoyi.common.annotation.Anonymous;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapExcelVO;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapVO;
|
||||
import com.ruoyi.ibs.custmap.service.CustMapExportService;
|
||||
import com.ruoyi.ibs.custmap.service.CustMapSelectService;
|
||||
import com.ruoyi.ibs.custmap.service.DeptAddressService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Api(tags = "地图拓客接口")
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/cust/map")
|
||||
public class CustMapController extends BaseController {
|
||||
@Resource
|
||||
private CustMapSelectService custMapSelectService;
|
||||
|
||||
@Resource
|
||||
private CustMapExportService custMapExportService;
|
||||
|
||||
@Resource
|
||||
private DeptAddressService deptAddressService;
|
||||
|
||||
@ApiOperation("坐标和半径查询用户列表")
|
||||
@Log(title = "地图拓客-坐标和半径查询用户列表")
|
||||
@PostMapping("/search/circle")
|
||||
public AjaxResult searchCustByCircle(@RequestBody @Valid CustMapCircleDTO custMapCircleDTO) {
|
||||
List<CustMapVO> custMapVOS = custMapSelectService.selectCustListByCircle(custMapCircleDTO);
|
||||
return success(custMapVOS);
|
||||
}
|
||||
|
||||
@ApiOperation("坐标和半径导出用户")
|
||||
@Log(title = "地图拓客-坐标和半径导出用户")
|
||||
@PostMapping("/export/circle")
|
||||
public AjaxResult exportCustByCircle(@RequestBody @Valid CustMapCircleExcelDTO custMapCircleExcelDTO) {
|
||||
if (custMapExportService.checkCustMapExportRequest()){
|
||||
return AjaxResult.error("请勿重复点击导出");
|
||||
}
|
||||
custMapCircleExcelDTO.setLatRange(custMapCircleExcelDTO.getDist() / 111.0);
|
||||
custMapCircleExcelDTO.setLngRange(custMapCircleExcelDTO.getDist() / (111.0 * Math.cos(Math.toRadians(custMapCircleExcelDTO.getTargetLat()))));
|
||||
custMapCircleExcelDTO.setUserName(getUsername());
|
||||
custMapCircleExcelDTO.setDept(SecurityUtils.getHeadId());
|
||||
custMapExportService.exportCustMapList(custMapCircleExcelDTO);
|
||||
return success("开始生成客户导出文件");
|
||||
}
|
||||
@ApiOperation("坐标和半径搜索用户数量")
|
||||
@Log(title ="地图拓客-坐标和半径搜索用户数量")
|
||||
@PostMapping("/search/circle/count")
|
||||
public AjaxResult countCustMapListByCircle(@RequestBody @Valid CustMapCircleDTO custMapCircleDTO) {
|
||||
return success(custMapSelectService.countCustMapListByCircle(custMapCircleDTO));
|
||||
}
|
||||
|
||||
@ApiOperation("多边形坐标查询用户列表")
|
||||
@Log(title = "地图拓客-多边形坐标查询用户列表")
|
||||
@PostMapping("/search/polygon")
|
||||
public AjaxResult searchCustByPolygon(@RequestBody @Valid CustMapPolygonDTO custMapPolygonDTO) {
|
||||
List<CustMapVO> custMapVOS = custMapSelectService.selectCustListByPolygon(custMapPolygonDTO);
|
||||
return success(custMapVOS);
|
||||
}
|
||||
|
||||
@ApiOperation("多边形坐标搜索用户数量")
|
||||
@Log(title = "地图拓客-多边形坐标搜索用户数量")
|
||||
@PostMapping("/search/polygon/count")
|
||||
public AjaxResult countCustMapListByPolygon(@RequestBody @Valid CustMapPolygonDTO custMapPolygonDTO) {
|
||||
return success(custMapSelectService.countCustMapListByPolygon(custMapPolygonDTO));
|
||||
}
|
||||
|
||||
@ApiOperation("多边形坐标导出用户")
|
||||
@Log(title = "地图拓客-多边形坐标导出用户")
|
||||
@PostMapping("/export/polygon")
|
||||
public AjaxResult exportCustMapListByPolygon(@RequestBody @Valid CustMapPolygonExcelDTO custMapPolygonExcelDTO) {
|
||||
if (custMapExportService.checkCustMapExportRequest()){
|
||||
return AjaxResult.error("请勿重复点击导出");
|
||||
}
|
||||
custMapPolygonExcelDTO.setUserName(getUsername());
|
||||
custMapPolygonExcelDTO.setDept(SecurityUtils.getHeadId());
|
||||
custMapExportService.exportCustMapList(custMapPolygonExcelDTO);
|
||||
return success("开始生成客户导出文件");
|
||||
}
|
||||
|
||||
@ApiOperation("获取用户默认地址")
|
||||
@Log(title = "地图拓客-获取用户默认地址")
|
||||
@GetMapping("/loc")
|
||||
public AjaxResult getDefaultLoc() {
|
||||
return success(deptAddressService.selectDeptAddressById());
|
||||
}
|
||||
|
||||
@ApiOperation("获取新华社数据")
|
||||
@Log(title = "地图拓客-获取新华社数据")
|
||||
@GetMapping("/info")
|
||||
public AjaxResult getRadarInfo(@RequestParam Integer id) {
|
||||
return success(custMapSelectService.selectCustInfoRadarById(id));
|
||||
}
|
||||
|
||||
@ApiOperation("选择导出用户")
|
||||
@Log(title = "地图拓客-选择导出用户")
|
||||
@PostMapping("/export/select")
|
||||
public void exportTopGridTemplate(HttpServletResponse response, @RequestBody List<Integer> ids) {
|
||||
if(Objects.isNull(ids) || ids.isEmpty()){
|
||||
throw new ServiceException("请选择导出客户");
|
||||
}
|
||||
List<CustMapExcelVO> custMapExcelVOS = custMapExportService.exportCustMapList(ids);
|
||||
ExcelUtil<CustMapExcelVO> util = new ExcelUtil<>(CustMapExcelVO.class);
|
||||
util.exportExcel(response, custMapExcelVOS, "地图拓客导出");
|
||||
}
|
||||
|
||||
@Anonymous
|
||||
@ApiOperation("获取用户默认地址")
|
||||
@GetMapping("/loc/init")
|
||||
public AjaxResult initDefaultLoc() {
|
||||
deptAddressService.initDeptAddress();
|
||||
return success();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.ruoyi.ibs.custmap.controller;
|
||||
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CompanyTypeVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/23
|
||||
**/
|
||||
@Api(tags = "地图拓客码值")
|
||||
@RestController
|
||||
@RequestMapping("/cust/map/metric")
|
||||
public class CustMapMerticController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
@ApiOperation("币种码值表")
|
||||
@GetMapping("/cur")
|
||||
public R<List<SysDictData>> getCurDict(){
|
||||
List<SysDictData> sysDictTypeArrayList = new ArrayList<SysDictData>(redisCache.getCacheObject("sys_dict:cust_map_cur_metric"));
|
||||
return R.ok(sysDictTypeArrayList);
|
||||
}
|
||||
|
||||
@ApiOperation("资质证书")
|
||||
@GetMapping("/zzzs")
|
||||
public R<List<SysDictData>> getZzzsDict(){
|
||||
List<SysDictData> sysDictTypeArrayList = new ArrayList<SysDictData>(redisCache.getCacheObject("sys_dict:cust_map_zzzs_metric"));
|
||||
return R.ok(sysDictTypeArrayList);
|
||||
}
|
||||
|
||||
@ApiOperation("机构类型码值表")
|
||||
@GetMapping("/company/type")
|
||||
public R<List<CompanyTypeVO>> getCompanyTypeDict(){
|
||||
List<SysDictData> sysDictTypeArrayList = new ArrayList<SysDictData>(redisCache.getCacheObject("sys_dict:cust_map_company_type_metric"));
|
||||
List<CompanyTypeVO> collect = sysDictTypeArrayList.stream().map(CompanyTypeVO::new).collect(Collectors.toList());
|
||||
List<CompanyTypeVO> collect1 = collect.stream().filter(companyTypeVO -> companyTypeVO.getSort() == 1).collect(Collectors.toList());
|
||||
for (CompanyTypeVO companyTypeVO : collect1) {
|
||||
companyTypeVO.setChildren(companyTypeDfs(companyTypeVO.getValue(), companyTypeVO.getSort() + 1, collect));
|
||||
}
|
||||
return R.ok(collect1);
|
||||
}
|
||||
|
||||
private List<CompanyTypeVO> companyTypeDfs(String value, Long sort, List<CompanyTypeVO> collect){
|
||||
List<CompanyTypeVO> collect1 = collect.stream().filter(companyTypeVO -> companyTypeVO.getValue().startsWith(value) && companyTypeVO.getSort() == sort)
|
||||
.collect(Collectors.toList());
|
||||
if (collect1.size() == 0){
|
||||
return null;
|
||||
}
|
||||
for (CompanyTypeVO companyTypeVO : collect1) {
|
||||
companyTypeVO.setChildren(companyTypeDfs(companyTypeVO.getValue(), companyTypeVO.getSort() + 1, collect));
|
||||
}
|
||||
return collect1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ruoyi.ibs.custmap.controller;
|
||||
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapSearchDTO;
|
||||
import com.ruoyi.ibs.custmap.service.CustMapSearchService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/6/23
|
||||
**/
|
||||
@Api(tags = "地图拓客-我的模板接口")
|
||||
@RestController
|
||||
@RequestMapping("/cust/map/search/template")
|
||||
public class CustMapSearchController {
|
||||
|
||||
@Resource
|
||||
private CustMapSearchService custMapSearchService;
|
||||
|
||||
@ApiOperation("保存查询模板")
|
||||
@PostMapping("/save")
|
||||
public AjaxResult saveCustMapSearchTemplate(@RequestBody @Valid CustMapSearchDTO custMapSearchDTO)
|
||||
{
|
||||
return AjaxResult.success(custMapSearchService.saveCustMapSearchTemplate(custMapSearchDTO));
|
||||
}
|
||||
|
||||
@ApiOperation("获取查询模板")
|
||||
@GetMapping("/get")
|
||||
public AjaxResult getCustMapSearchTemplate()
|
||||
{
|
||||
return AjaxResult.success(custMapSearchService.getCustMapSearchTemplate());
|
||||
}
|
||||
|
||||
@ApiOperation("删除查询模板")
|
||||
@PostMapping("/delete")
|
||||
public AjaxResult deleteCustMapSearchTemplate(@RequestParam String templateId) {
|
||||
return AjaxResult.success(custMapSearchService.deleteCustMapSearchTemplate(templateId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapCircleDTO extends CustMapDTO{
|
||||
|
||||
@NotNull(message = "纬度不能为空")
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private Double targetLat;
|
||||
|
||||
@NotNull(message = "经度不能为空")
|
||||
@ApiModelProperty(value = "经度")
|
||||
private Double targetLng;
|
||||
|
||||
private Double latRange;
|
||||
|
||||
private Double lngRange;
|
||||
|
||||
@NotNull(message = "距离不能为空")
|
||||
@ApiModelProperty(value = "距离半径")
|
||||
private Double dist;
|
||||
|
||||
@ApiModelProperty(value = "页面大小")
|
||||
private Integer size;
|
||||
|
||||
@ApiModelProperty(value = "页数")
|
||||
private Integer num;
|
||||
|
||||
private Integer pageIndex;
|
||||
|
||||
@ApiModelProperty(value = "升降序")
|
||||
private Boolean isAsc;
|
||||
|
||||
private List<String> codeList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapCircleExcelDTO extends CustMapExcelDTO{
|
||||
|
||||
@NotNull(message = "纬度不能为空")
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private Double targetLat;
|
||||
|
||||
@NotNull(message = "经度不能为空")
|
||||
@ApiModelProperty(value = "经度")
|
||||
private Double targetLng;
|
||||
|
||||
private Double latRange;
|
||||
|
||||
private Double lngRange;
|
||||
|
||||
@NotNull(message = "距离不能为空")
|
||||
@ApiModelProperty(value = "距离半径")
|
||||
private Double dist;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,282 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapDTO {
|
||||
|
||||
private String dept;
|
||||
|
||||
/**
|
||||
* 企业规模 | en_qly
|
||||
*/
|
||||
@ApiModelProperty(value = "企业规模 | en_qly")
|
||||
private List<String> custScaleList;
|
||||
|
||||
@ApiModelProperty(value = "机构类型")
|
||||
private List<String> companyTypeList;
|
||||
|
||||
@ApiModelProperty(value = "包含机构类型")
|
||||
private Boolean companyTypeInclude;
|
||||
/**
|
||||
* 法人电话
|
||||
*/
|
||||
@ApiModelProperty(value = "是否电话")
|
||||
private Boolean isPhoneNumber;
|
||||
|
||||
@ApiModelProperty(value = "是否邮箱")
|
||||
private Boolean isEmail;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
@ApiModelProperty(value = "省")
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
@ApiModelProperty(value = "市")
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 县
|
||||
*/
|
||||
@ApiModelProperty(value = "县")
|
||||
private String county;
|
||||
|
||||
/**
|
||||
* 街道/镇
|
||||
*/
|
||||
@ApiModelProperty(value = "街道/镇")
|
||||
private String street;
|
||||
|
||||
/**
|
||||
* 社区/村
|
||||
*/
|
||||
@ApiModelProperty(value = "社区/村")
|
||||
private String community;
|
||||
|
||||
/**
|
||||
* 所在行业
|
||||
*/
|
||||
@ApiModelProperty(value = "所在行业")
|
||||
private List<String> belongBusinessList;
|
||||
|
||||
/**
|
||||
* 成立年限
|
||||
*/
|
||||
@ApiModelProperty(value = "成立年限")
|
||||
private List<RangeInterval> startDateIntervalList;
|
||||
|
||||
/**
|
||||
* 经营状态
|
||||
*/
|
||||
@ApiModelProperty(value = "经营状态")
|
||||
private List<String> statusList;
|
||||
|
||||
@ApiModelProperty(value = "是否包含特定经营状态")
|
||||
private Boolean statusInclude;
|
||||
|
||||
/**
|
||||
* 注册资本币种
|
||||
*/
|
||||
@ApiModelProperty(value = "注册资本币种")
|
||||
private String registCapiCur;
|
||||
|
||||
@ApiModelProperty(value = "注册资本范围")
|
||||
private List<RangeInterval> registCapiIntervalList;
|
||||
|
||||
/**
|
||||
* 实缴资本币种
|
||||
*/
|
||||
@ApiModelProperty(value = "实缴资本币种")
|
||||
private String recCapCur;
|
||||
|
||||
@ApiModelProperty(value = "实缴资本范围")
|
||||
private List<RangeInterval> recCapIntervalList;
|
||||
|
||||
/**
|
||||
* 经营信息-养老保险参保人数
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-养老保险参保人数")
|
||||
private List<RangeInterval> businessInfoPenInsurIntervalList;
|
||||
|
||||
/**
|
||||
* 经营信息-医疗保险参保人数
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-医疗保险参保人数")
|
||||
private List<RangeInterval> businessInfoMediInsurIntervalList;
|
||||
|
||||
/**
|
||||
* 经营信息-有无进出口信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-有无进出口信息(1为有,0为无)")
|
||||
private Boolean businessInfoImExportFlag;
|
||||
|
||||
@ApiModelProperty(value = "进出口信用等级列表")
|
||||
private List<String> businessInfoImExportCreditGradeList;
|
||||
|
||||
/**
|
||||
* 经营信息-有无政府扶持和奖励(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-有无政府扶持和奖励(1为有,0为无)")
|
||||
private Boolean businessInfoGovSupportFlag;
|
||||
|
||||
/**
|
||||
* 经营信息-有无融资信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-有无融资信息(1为有,0为无)")
|
||||
private Boolean businessInfoFinaInfoFlag;
|
||||
|
||||
/**
|
||||
* 经营信息-融资轮次
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-融资轮次")
|
||||
private List<String> businessInfoFinaRoundList;
|
||||
|
||||
/**
|
||||
* 知识产权-有无商标信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "知识产权-有无商标信息(1为有,0为无)")
|
||||
private Boolean intelPropRightTrademarkInfoFlag;
|
||||
|
||||
/**
|
||||
* 知识产权-有无专利信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "知识产权-有无专利信息(1为有,0为无)")
|
||||
private Boolean intelPropRightPatentInfoFlag;
|
||||
|
||||
/**
|
||||
* 知识产权-有无软件著作权(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "知识产权-有无软件著作权(1为有,0为无)")
|
||||
private Boolean intelPropRightSoftCopyrightFlag;
|
||||
|
||||
/**
|
||||
* 科技等级-类型
|
||||
*/
|
||||
@ApiModelProperty(value = "科技等级-类型")
|
||||
private List<String> technologyLvlTypeList;
|
||||
|
||||
/**
|
||||
* 科技等级-状态
|
||||
*/
|
||||
@ApiModelProperty(value = "科技等级-状态")
|
||||
private List<String> technologyLvlStateList;
|
||||
|
||||
/**
|
||||
* 科技等级-级别
|
||||
*/
|
||||
@ApiModelProperty(value = "科技等级-级别")
|
||||
private List<String> technologyLvlLevelList;
|
||||
|
||||
/**
|
||||
* 资本市场-有无上市信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "资本市场-有无上市信息(1为有,0为无)")
|
||||
private Boolean capMarketListInfoFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无失信信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无失信信息(1为有,0为无)")
|
||||
private Boolean riskCharDisInfoFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无破产清算(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无破产清算(1为有,0为无)")
|
||||
private Boolean riskCharBankruptcyLiquiFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无变更记录(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无变更记录(1为有,0为无)")
|
||||
private Boolean riskCharChangeRecordFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无失信被执行人(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无失信被执行人(1为有,0为无)")
|
||||
private Boolean riskCharDisPersonFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无严重失信违法(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无严重失信违法(1为有,0为无)")
|
||||
private Boolean riskCharSncFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无限制高消费(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无限制高消费(1为有,0为无)")
|
||||
private Boolean riskCharRhcFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无行政处罚(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无行政处罚(1为有,0为无)")
|
||||
private Boolean operatRiskAdminPenaltyFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无环保处罚(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无环保处罚(1为有,0为无)")
|
||||
private Boolean operatRiskEnvirPenaltyFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无欠税信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无欠税信息(1为有,0为无)")
|
||||
private Boolean operatRiskOweTaxInfoFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无终末案件(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无终末案件(1为有,0为无)")
|
||||
private Boolean operatRiskFinalCaseFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无未结案件(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无未结案件(1为有,0为无)")
|
||||
private Boolean operatRiskUnfinishCaseFlag;
|
||||
|
||||
/**
|
||||
* 新增企业标识(1为新增企业,0为存量企业)
|
||||
*/
|
||||
@ApiModelProperty(value = "新增企业标识(1为新增企业,0为存量企业)")
|
||||
private Boolean newCompanyFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否是分支机构")
|
||||
private Boolean isBranchFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否有分支机构")
|
||||
private Boolean isHasBranchFlag;
|
||||
|
||||
@ApiModelProperty(value = "纳税信用等级")
|
||||
private List<String> nsxydjList;
|
||||
|
||||
@ApiModelProperty(value = "税收违法")
|
||||
private Boolean isSswf;
|
||||
|
||||
@ApiModelProperty(value = "经营异常")
|
||||
private Boolean isJyyc;
|
||||
|
||||
@ApiModelProperty(value = "资质证书")
|
||||
private List<String> zzzsCodeList;
|
||||
|
||||
@ApiModelProperty(value = "法人变更")
|
||||
private Boolean isFrbg;
|
||||
|
||||
@ApiModelProperty(value = "股权冻结")
|
||||
private Boolean isGqdj;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapExcelDTO extends CustMapDTO{
|
||||
|
||||
private String dept;
|
||||
|
||||
private String userName;
|
||||
|
||||
@NotNull(message = "导出数据量不能为空")
|
||||
@ApiModelProperty(value = "导出数据量")
|
||||
private Integer total;
|
||||
|
||||
@ApiModelProperty(value = "升降序")
|
||||
private Boolean isAsc;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapPolygonDTO extends CustMapDTO{
|
||||
|
||||
@NotEmpty(message = "wkt不能为空")
|
||||
@ApiModelProperty(value = "wkt")
|
||||
private String wkt;
|
||||
|
||||
private Double minLat;
|
||||
|
||||
private Double minLng;
|
||||
|
||||
private Double maxLat;
|
||||
|
||||
private Double maxLng;
|
||||
|
||||
@ApiModelProperty(value = "页面大小")
|
||||
private Integer size;
|
||||
|
||||
@ApiModelProperty(value = "页数")
|
||||
private Integer num;
|
||||
|
||||
private Integer pageIndex;
|
||||
|
||||
@ApiModelProperty(value = "升降序")
|
||||
private Boolean isAsc;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapPolygonExcelDTO extends CustMapExcelDTO{
|
||||
|
||||
@NotEmpty(message = "wkt不能为空")
|
||||
@ApiModelProperty(value = "wkt")
|
||||
private String wkt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
@Valid
|
||||
public class CustMapSearchDTO {
|
||||
|
||||
@ApiModelProperty(value = "模板id")
|
||||
private String templateId;
|
||||
|
||||
@ApiModelProperty(value = "模板名称")
|
||||
private String templateName;
|
||||
|
||||
private String nickName;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
private String searchTemplate;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/22
|
||||
**/
|
||||
@Data
|
||||
public class PolygonDTO {
|
||||
|
||||
private Double minLat;
|
||||
|
||||
private Double minLng;
|
||||
|
||||
private Double maxLat;
|
||||
|
||||
private Double maxLng;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.ibs.custmap.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/20
|
||||
**/
|
||||
|
||||
@Data
|
||||
public class RangeInterval{
|
||||
private Long min;
|
||||
private Long max;
|
||||
}
|
||||
@@ -0,0 +1,323 @@
|
||||
package com.ruoyi.ibs.custmap.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 客户雷达信息表(CustInfoRadar965)实体类
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2025-05-22 16:44:05
|
||||
*/
|
||||
@Data
|
||||
@TableName("cust_info_radar")
|
||||
public class CustInfoRadar {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId
|
||||
@ApiModelProperty(value = "ID")
|
||||
private Integer id;
|
||||
/**
|
||||
* 企业规模 | en_qly
|
||||
*/
|
||||
@ApiModelProperty(value = "企业规模 | en_qly")
|
||||
private String custScale;
|
||||
/**
|
||||
* 企业名称 | cust_nam
|
||||
*/
|
||||
@ApiModelProperty(value = "企业名称 | cust_nam")
|
||||
private String custName;
|
||||
/**
|
||||
* 法人姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "法人姓名")
|
||||
private String lpName;
|
||||
/**
|
||||
* 法人电话
|
||||
*/
|
||||
@ApiModelProperty(value = "法人电话")
|
||||
private String custPhone;
|
||||
/**
|
||||
* 客户号 | cust_id
|
||||
*/
|
||||
@ApiModelProperty(value = "客户号 | cust_id")
|
||||
private String custId;
|
||||
/**
|
||||
* 客户内码 | cst_id
|
||||
*/
|
||||
@ApiModelProperty(value = "客户内码 | cst_id")
|
||||
private String custIsn;
|
||||
/**
|
||||
* 统一社会信用识别码 | uniscid
|
||||
*/
|
||||
@ApiModelProperty(value = "统一社会信用识别码 | uniscid")
|
||||
private String socialCreditCode;
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
@ApiModelProperty(value = "省")
|
||||
private String province;
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
@ApiModelProperty(value = "市")
|
||||
private String city;
|
||||
/**
|
||||
* 县
|
||||
*/
|
||||
@ApiModelProperty(value = "县")
|
||||
private String county;
|
||||
/**
|
||||
* 街道/镇
|
||||
*/
|
||||
@ApiModelProperty(value = "街道/镇")
|
||||
private String street;
|
||||
/**
|
||||
* 社区/村
|
||||
*/
|
||||
@ApiModelProperty(value = "社区/村")
|
||||
private String community;
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
private String addressDetail;
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
@ApiModelProperty(value = "经度")
|
||||
private Double longitude;
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private Double latitude;
|
||||
/**
|
||||
* 所在行业
|
||||
*/
|
||||
@ApiModelProperty(value = "所在行业")
|
||||
private String belongBusiness;
|
||||
/**
|
||||
* 成立年限
|
||||
*/
|
||||
@ApiModelProperty(value = "成立年限")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private String startDate;
|
||||
/**
|
||||
* 经营状态
|
||||
*/
|
||||
@ApiModelProperty(value = "经营状态")
|
||||
private String status;
|
||||
/**
|
||||
* 注册资本币种
|
||||
*/
|
||||
@ApiModelProperty(value = "注册资本币种")
|
||||
private String registCapiCur;
|
||||
/**
|
||||
* 注册资本数值
|
||||
*/
|
||||
@ApiModelProperty(value = "注册资本数值")
|
||||
private Double registCapiValue;
|
||||
/**
|
||||
* 注册资本单位
|
||||
*/
|
||||
@ApiModelProperty(value = "注册资本单位")
|
||||
private String registCapiUnit;
|
||||
/**
|
||||
* 实缴资本币种
|
||||
*/
|
||||
@ApiModelProperty(value = "实缴资本币种")
|
||||
private String recCapCur;
|
||||
/**
|
||||
* 实缴资本数值
|
||||
*/
|
||||
@ApiModelProperty(value = "实缴资本数值")
|
||||
private Double recCapValue;
|
||||
/**
|
||||
* 实缴资本单位
|
||||
*/
|
||||
@ApiModelProperty(value = "实缴资本单位")
|
||||
private String recCapUnit;
|
||||
/**
|
||||
* 联系方式
|
||||
*/
|
||||
@ApiModelProperty(value = "联系方式")
|
||||
private String phoneNumber;
|
||||
/**
|
||||
* 经营信息-养老保险参保人数
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-养老保险参保人数")
|
||||
private String businessInfoPenInsurNum;
|
||||
/**
|
||||
* 经营信息-医疗保险参保人数
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-医疗保险参保人数")
|
||||
private String businessInfoMediInsurNum;
|
||||
/**
|
||||
* 经营信息-有无进出口信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-有无进出口信息(1为有,0为无)")
|
||||
private Boolean businessInfoImExportFlag;
|
||||
|
||||
@ApiModelProperty(value = "经营信息-进出口信用等级")
|
||||
private String businessInfoImExportCreditGrade;
|
||||
|
||||
/**
|
||||
* 经营信息-有无政府扶持和奖励(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-有无政府扶持和奖励(1为有,0为无)")
|
||||
private Boolean businessInfoGovSupportFlag;
|
||||
/**
|
||||
* 经营信息-有无融资信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-有无融资信息(1为有,0为无)")
|
||||
private Boolean businessInfoFinaInfoFlag;
|
||||
/**
|
||||
* 经营信息-融资轮次
|
||||
*/
|
||||
@ApiModelProperty(value = "经营信息-融资轮次")
|
||||
private String businessInfoFinaRound;
|
||||
/**
|
||||
* 知识产权-有无商标信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "知识产权-有无商标信息(1为有,0为无)")
|
||||
private Boolean intelPropRightTrademarkInfoFlag;
|
||||
/**
|
||||
* 知识产权-有无专利信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "知识产权-有无专利信息(1为有,0为无)")
|
||||
private Boolean intelPropRightPatentInfoFlag;
|
||||
/**
|
||||
* 知识产权-有无软件著作权(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "知识产权-有无软件著作权(1为有,0为无)")
|
||||
private Boolean intelPropRightSoftCopyrightFlag;
|
||||
/**
|
||||
* 科技等级-类型
|
||||
*/
|
||||
@ApiModelProperty(value = "科技等级-类型")
|
||||
private String technologyLvlType;
|
||||
/**
|
||||
* 科技等级-状态
|
||||
*/
|
||||
@ApiModelProperty(value = "科技等级-状态")
|
||||
private String technologyLvlState;
|
||||
/**
|
||||
* 科技等级-级别
|
||||
*/
|
||||
@ApiModelProperty(value = "科技等级-级别")
|
||||
private String technologyLvlLevel;
|
||||
/**
|
||||
* 资本市场-有无上市信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "资本市场-有无上市信息(1为有,0为无)")
|
||||
private Boolean capMarketListInfoFlag;
|
||||
/**
|
||||
* 风险特征-有无失信信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无失信信息(1为有,0为无)")
|
||||
private Boolean riskCharDisInfoFlag;
|
||||
/**
|
||||
* 风险特征-有无破产清算(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无破产清算(1为有,0为无)")
|
||||
private Boolean riskCharBankruptcyLiquiFlag;
|
||||
/**
|
||||
* 风险特征-有无变更记录(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无变更记录(1为有,0为无)")
|
||||
private Boolean riskCharChangeRecordFlag;
|
||||
/**
|
||||
* 风险特征-有无失信被执行人(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无失信被执行人(1为有,0为无)")
|
||||
private Boolean riskCharDisPersonFlag;
|
||||
/**
|
||||
* 风险特征-有无严重失信违法(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无严重失信违法(1为有,0为无)")
|
||||
private Boolean riskCharSncFlag;
|
||||
/**
|
||||
* 风险特征-有无限制高消费(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "风险特征-有无限制高消费(1为有,0为无)")
|
||||
private Boolean riskCharRhcFlag;
|
||||
/**
|
||||
* 经营风险-有无行政处罚(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无行政处罚(1为有,0为无)")
|
||||
private Boolean operatRiskAdminPenaltyFlag;
|
||||
/**
|
||||
* 经营风险-有无环保处罚(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无环保处罚(1为有,0为无)")
|
||||
private Boolean operatRiskEnvirPenaltyFlag;
|
||||
/**
|
||||
* 经营风险-有无欠税信息(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无欠税信息(1为有,0为无)")
|
||||
private Boolean operatRiskOweTaxInfoFlag;
|
||||
/**
|
||||
* 经营风险-有无终末案件(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无终末案件(1为有,0为无)")
|
||||
private Boolean operatRiskFinalCaseFlag;
|
||||
/**
|
||||
* 经营风险-有无未结案件(1为有,0为无)
|
||||
*/
|
||||
@ApiModelProperty(value = "经营风险-有无未结案件(1为有,0为无)")
|
||||
private Boolean operatRiskUnfinishCaseFlag;
|
||||
/**
|
||||
* 新增企业标识(1为新增企业,0为存量企业)
|
||||
*/
|
||||
@ApiModelProperty(value = "新增企业标识(1为新增企业,0为存量企业)")
|
||||
private Boolean newCompanyFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否是分支机构")
|
||||
private Boolean isBranchFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否有分支机构")
|
||||
private Boolean isHasBranchFlag;
|
||||
|
||||
@ApiModelProperty(value = "电子邮箱")
|
||||
private String email;
|
||||
|
||||
@ApiModelProperty(value = "注册资本展示")
|
||||
private String registCapiShow;
|
||||
|
||||
@ApiModelProperty(value = "实缴资本展示")
|
||||
private String recCapShow;
|
||||
|
||||
@ApiModelProperty(value = "经营范围")
|
||||
private String scope;
|
||||
|
||||
@ApiModelProperty(value = "客户类型")
|
||||
private String custType;
|
||||
|
||||
@ApiModelProperty(value = "机构类型")
|
||||
private String companyType;
|
||||
|
||||
@ApiModelProperty(value = "纳税信用等级")
|
||||
private String nsxydj;
|
||||
|
||||
@ApiModelProperty(value = "税收违法")
|
||||
private Boolean isSswf;
|
||||
|
||||
@ApiModelProperty(value = "经营异常")
|
||||
private Boolean isJyyc;
|
||||
|
||||
@ApiModelProperty(value = "资质证书")
|
||||
// @TableField(typeHandler = StringListTypeHandler.class)
|
||||
private String zzzsCode;
|
||||
|
||||
@ApiModelProperty(value = "法人变更")
|
||||
private Boolean isFrbg;
|
||||
|
||||
@ApiModelProperty(value = "股权冻结")
|
||||
private Boolean isGqdj;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.ibs.custmap.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/23
|
||||
**/
|
||||
@ApiModel(value = "机构地址表",description = "")
|
||||
@TableName("dept_address")
|
||||
@Data
|
||||
public class DeptAddress {
|
||||
|
||||
/** 部门id */
|
||||
@ApiModelProperty(value = "部门id",notes = "")
|
||||
@TableId
|
||||
private Long deptId ;
|
||||
/** */
|
||||
@ApiModelProperty(value = "地址",notes = "")
|
||||
private String address ;
|
||||
@ApiModelProperty(value = "城市",notes = "")
|
||||
private String city ;
|
||||
/** */
|
||||
@ApiModelProperty(value = "经度",notes = "")
|
||||
private Double lng ;
|
||||
/** */
|
||||
@ApiModelProperty(value = "纬度",notes = "")
|
||||
private Double lat ;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.ruoyi.ibs.custmap.domain.vo;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/28
|
||||
**/
|
||||
@Data
|
||||
public class CompanyTypeVO {
|
||||
|
||||
private Long sort;
|
||||
|
||||
private String label;
|
||||
|
||||
private String value;
|
||||
|
||||
private List<CompanyTypeVO> children;
|
||||
|
||||
public CompanyTypeVO(SysDictData sysDictData) {
|
||||
this.sort = sysDictData.getDictSort();
|
||||
this.label = sysDictData.getDictLabel();
|
||||
this.value = sysDictData.getDictValue();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,359 @@
|
||||
package com.ruoyi.ibs.custmap.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapExcelVO {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
// @Excel(name = "id")
|
||||
@ExcelProperty("id")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 企业规模 | en_qly
|
||||
*/
|
||||
@ExcelProperty("企业规模")
|
||||
private String custScale;
|
||||
|
||||
/**
|
||||
* 企业名称 | cust_nam
|
||||
*/
|
||||
@ExcelProperty("企业名称")
|
||||
private String custName;
|
||||
|
||||
/**
|
||||
* 公司类型
|
||||
*/
|
||||
@ExcelProperty("机构类型")
|
||||
private String companyType;
|
||||
|
||||
/**
|
||||
* 法人姓名
|
||||
*/
|
||||
@ExcelProperty("法人姓名")
|
||||
private String lpName;
|
||||
|
||||
/**
|
||||
* 法人电话
|
||||
*/
|
||||
@ExcelProperty("法人电话")
|
||||
private String custPhone;
|
||||
|
||||
/**
|
||||
* 客户号 | cust_id
|
||||
*/
|
||||
@ExcelProperty("客户号")
|
||||
private String custId;
|
||||
|
||||
/**
|
||||
* 客户内码 | cst_id
|
||||
*/
|
||||
@ExcelProperty("客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/**
|
||||
* 统一社会信用识别码 | uniscid
|
||||
*/
|
||||
@ExcelProperty("统一社会信用识别码")
|
||||
private String socialCreditCode;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
@ExcelProperty("省")
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
@ExcelProperty("市")
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 县
|
||||
*/
|
||||
@ExcelProperty("县")
|
||||
private String county;
|
||||
|
||||
/**
|
||||
* 街道/镇
|
||||
*/
|
||||
@ExcelProperty("街道/镇")
|
||||
private String street;
|
||||
|
||||
/**
|
||||
* 社区/村
|
||||
*/
|
||||
@ExcelProperty("社区/村")
|
||||
private String community;
|
||||
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
@ExcelProperty("详细地址")
|
||||
private String addressDetail;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
@ExcelProperty("经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
@ExcelProperty("纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
/**
|
||||
* 所在行业
|
||||
*/
|
||||
@ExcelProperty("所在行业")
|
||||
private String belongBusiness;
|
||||
|
||||
/**
|
||||
* 成立年限
|
||||
*/
|
||||
@ExcelProperty("成立年限")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private String startDate;
|
||||
|
||||
/**
|
||||
* 经营状态
|
||||
*/
|
||||
@ExcelProperty("经营状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 注册资本币种
|
||||
*/
|
||||
@ExcelProperty("注册资本币种")
|
||||
private String registCapiCur;
|
||||
|
||||
/**
|
||||
* 注册资本数值
|
||||
*/
|
||||
@ExcelProperty("注册资本数值")
|
||||
private Double registCapiValue;
|
||||
|
||||
/**
|
||||
* 注册资本单位
|
||||
*/
|
||||
@ExcelProperty("注册资本展示")
|
||||
private String registCapiShow;
|
||||
|
||||
/**
|
||||
* 实缴资本币种
|
||||
*/
|
||||
@ExcelProperty("实缴资本币种")
|
||||
private String recCapCur;
|
||||
|
||||
/**
|
||||
* 实缴资本数值
|
||||
*/
|
||||
@ExcelProperty("实缴资本数值")
|
||||
private Double recCapValue;
|
||||
|
||||
/**
|
||||
* 实缴资本单位
|
||||
*/
|
||||
@ExcelProperty("实缴资本展示")
|
||||
private String recCapShow;
|
||||
|
||||
/**
|
||||
* 联系方式
|
||||
*/
|
||||
@ExcelProperty("联系方式")
|
||||
private String phoneNumber;
|
||||
|
||||
/**
|
||||
* 经营信息-养老保险参保人数
|
||||
*/
|
||||
@ExcelProperty("经营信息-养老保险参保人数")
|
||||
private String businessInfoPenInsurNum;
|
||||
|
||||
/**
|
||||
* 经营信息-医疗保险参保人数
|
||||
*/
|
||||
@ExcelProperty("经营信息-医疗保险参保人数")
|
||||
private String businessInfoMediInsurNum;
|
||||
|
||||
/**
|
||||
* 经营信息-有无进出口信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营信息-有无进出口信息")
|
||||
private Boolean businessInfoImExportFlag;
|
||||
|
||||
@ExcelProperty("经营信息-进出口信息信用等级")
|
||||
private String businessInfoImExportCreditGrade;
|
||||
|
||||
|
||||
/**
|
||||
* 经营信息-有无政府扶持和奖励(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营信息-有无政府扶持和奖励")
|
||||
private Boolean businessInfoGovSupportFlag;
|
||||
|
||||
/**
|
||||
* 经营信息-有无融资信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营信息-有无融资信息")
|
||||
private Boolean businessInfoFinaInfoFlag;
|
||||
|
||||
/**
|
||||
* 经营信息-融资轮次
|
||||
*/
|
||||
@ExcelProperty("经营信息-融资轮次")
|
||||
private String businessInfoFinaRound;
|
||||
|
||||
/**
|
||||
* 知识产权-有无商标信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("知识产权-有无商标信息")
|
||||
private Boolean intelPropRightTrademarkInfoFlag;
|
||||
|
||||
/**
|
||||
* 知识产权-有无专利信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("知识产权-有无专利信息")
|
||||
private Boolean intelPropRightPatentInfoFlag;
|
||||
|
||||
/**
|
||||
* 知识产权-有无软件著作权(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("知识产权-有无软件著作权")
|
||||
private Boolean intelPropRightSoftCopyrightFlag;
|
||||
|
||||
/**
|
||||
* 科技等级-类型
|
||||
*/
|
||||
@ExcelProperty("科技等级-类型")
|
||||
private String technologyLvlType;
|
||||
|
||||
/**
|
||||
* 科技等级-状态
|
||||
*/
|
||||
@ExcelProperty("科技等级-状态")
|
||||
private String technologyLvlState;
|
||||
|
||||
/**
|
||||
* 科技等级-级别
|
||||
*/
|
||||
@ExcelProperty("科技等级-级别")
|
||||
private String technologyLvlLevel;
|
||||
|
||||
/**
|
||||
* 资本市场-有无上市信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("资本市场-有无上市信息")
|
||||
private Boolean capMarketListInfoFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无失信信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("风险特征-有无失信信息")
|
||||
private Boolean riskCharDisInfoFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无破产清算(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("风险特征-有无破产清算")
|
||||
private Boolean riskCharBankruptcyLiquiFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无变更记录(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("风险特征-有无变更记录")
|
||||
private Boolean riskCharChangeRecordFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无失信被执行人(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("风险特征-有无失信被执行人")
|
||||
private Boolean riskCharDisPersonFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无严重失信违法(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("风险特征-有无严重失信违法")
|
||||
private Boolean riskCharSncFlag;
|
||||
|
||||
/**
|
||||
* 风险特征-有无限制高消费(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("风险特征-有无限制高消费")
|
||||
private Boolean riskCharRhcFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无行政处罚(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营风险-有无行政处罚")
|
||||
private Boolean operatRiskAdminPenaltyFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无环保处罚(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营风险-有无环保处罚")
|
||||
private Boolean operatRiskEnvirPenaltyFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无欠税信息(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营风险-有无欠税信息")
|
||||
private Boolean operatRiskOweTaxInfoFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无终末案件(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营风险-有无终末案件")
|
||||
private Boolean operatRiskFinalCaseFlag;
|
||||
|
||||
/**
|
||||
* 经营风险-有无未结案件(1为有,0为无)
|
||||
*/
|
||||
@ExcelProperty("经营风险-有无未结案件")
|
||||
private Boolean operatRiskUnfinishCaseFlag;
|
||||
|
||||
/**
|
||||
* 新增企业标识(1为新增企业,0为存量企业)
|
||||
*/
|
||||
@ExcelProperty("新增企业标识")
|
||||
private Boolean newCompanyFlag;
|
||||
|
||||
/**
|
||||
* 是否是分支机构
|
||||
*/
|
||||
@ExcelProperty("是否是分支机构")
|
||||
private Boolean isBranch;
|
||||
|
||||
/**
|
||||
* 是否有分支机构
|
||||
*/
|
||||
@ExcelProperty("是否有分支机构")
|
||||
private Boolean isHasBranch;
|
||||
|
||||
/**
|
||||
* 电子邮箱
|
||||
*/
|
||||
@ExcelProperty("电子邮箱")
|
||||
private String email;
|
||||
|
||||
@ExcelProperty("经营范围")
|
||||
private String scope;
|
||||
|
||||
@ExcelProperty("客户类型")
|
||||
private String custType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.ruoyi.ibs.custmap.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Data
|
||||
public class CustMapVO {
|
||||
|
||||
@ApiModelProperty(value = "ID")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "客户名称")
|
||||
private String custName;
|
||||
|
||||
@ApiModelProperty(value = "法人")
|
||||
private String lpName;
|
||||
|
||||
@ApiModelProperty(value = "开始日期")
|
||||
private String startDate;
|
||||
|
||||
@ApiModelProperty(value = "注册资本显示")
|
||||
private String registCapiShow;
|
||||
|
||||
@ApiModelProperty(value = "省份")
|
||||
private String province;
|
||||
|
||||
@ApiModelProperty(value = "城市")
|
||||
private String city;
|
||||
|
||||
@ApiModelProperty(value = "距离")
|
||||
private double distance;
|
||||
|
||||
@ApiModelProperty(value = "电话号码")
|
||||
private String phoneNumber;
|
||||
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
private String addressDetail;
|
||||
|
||||
@ApiModelProperty(value = "经度")
|
||||
private BigDecimal longitude;
|
||||
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private BigDecimal latitude;
|
||||
|
||||
@ApiModelProperty(value = "社会信用代码")
|
||||
private String socialCreditCode;
|
||||
|
||||
@ApiModelProperty(value = "新公司标志")
|
||||
private Boolean newCompanyFlag;
|
||||
|
||||
@ApiModelProperty(value = "客户类型")
|
||||
private String custType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.ruoyi.ibs.custmap.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.entity.CustInfoRadar;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapExcelVO;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Mapper
|
||||
public interface CustMapMapper extends BaseMapper<CustInfoRadar> {
|
||||
|
||||
List<CustMapVO> selectCustMapListByCircle(CustMapCircleDTO custMapCircleDTO );
|
||||
|
||||
List<CustMapExcelVO> exportCustMapListByCircle(CustMapCircleExcelDTO custMapCircleExcelDTO );
|
||||
|
||||
Long countCustMapListByCircle(CustMapCircleDTO custMapCircleDTO);
|
||||
|
||||
|
||||
|
||||
List<CustMapVO> selectCustMapListByPolygon(CustMapPolygonDTO custMapPolygonDTO );
|
||||
|
||||
Long countCustMapListByPolygon(CustMapPolygonDTO custMapPolygonDTO);
|
||||
|
||||
List<CustMapExcelVO> exportCustMapListByPolygon(CustMapPolygonExcelDTO custMapPolygonExcelDTO );
|
||||
|
||||
List<CustMapVO> selectLngAndLat(@Param("offset") int offset, @Param("limit") int limit);
|
||||
|
||||
void saveCodeToCustMap(@Param("updateDataList") List<Map<String, Object>> updateDataLis);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.ibs.custmap.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.ibs.custmap.domain.entity.DeptAddress;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/26
|
||||
**/
|
||||
@Mapper
|
||||
public interface DeptAddressMapper extends BaseMapper<DeptAddress> {
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.ruoyi.ibs.custmap.service;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonExcelDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.entity.CustInfoRadar;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapExcelVO;
|
||||
import com.ruoyi.ibs.custmap.mapper.CustMapMapper;
|
||||
import com.ruoyi.ibs.dashboard.service.FileOptService;
|
||||
import com.ruoyi.ibs.dashboard.service.NotificationDownloadService;
|
||||
import com.ruoyi.ibs.task.domain.entity.ImportExportTask;
|
||||
import com.ruoyi.ibs.task.mapper.ImportExportTaskMapper;
|
||||
import com.ruoyi.ibs.task.service.ImportExportTaskService;
|
||||
import com.ruoyi.system.enums.OssFileEnum;
|
||||
import com.ruoyi.system.service.OssFileService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
@EnableAsync
|
||||
public class CustMapExportService {
|
||||
|
||||
private final String CUST_MAP_EXPORT_REQUEST = "CUST_MAP_EXPORT_REQUEST_";
|
||||
@Resource
|
||||
private CustMapMapper custMapMapper;
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
@Resource
|
||||
private NotificationDownloadService notificationDownloadService;
|
||||
@Resource
|
||||
private FileOptService fileOptService;
|
||||
@Resource
|
||||
private ImportExportTaskService importExportTaskService;
|
||||
@Resource
|
||||
private ImportExportTaskMapper importExportTaskMapper;
|
||||
|
||||
|
||||
public Boolean checkCustMapExportRequest() {
|
||||
return redisCache.hasKey(CUST_MAP_EXPORT_REQUEST + SecurityUtils.getUsername());
|
||||
}
|
||||
|
||||
@Async
|
||||
public void exportCustMapList(CustMapExcelDTO custMapExcelDTO) {
|
||||
// 使用redis控制每个用户不可同时多次执行导出
|
||||
if (redisCache.hasKey(CUST_MAP_EXPORT_REQUEST + custMapExcelDTO.getUserName())) {
|
||||
throw new ServiceException("请勿重复导出");
|
||||
}
|
||||
redisCache.setCacheObject(CUST_MAP_EXPORT_REQUEST + custMapExcelDTO.getUserName(), custMapExcelDTO, 15, TimeUnit.MINUTES);
|
||||
String fileNotification = notificationDownloadService.createFileNotification(custMapExcelDTO.getUserName());
|
||||
int pageNum = 1;
|
||||
int pageSize = Math.min(10000, custMapExcelDTO.getTotal());
|
||||
int pageCount = (int) Math.ceil(custMapExcelDTO.getTotal() / pageSize);
|
||||
List<CustMapExcelVO> custMapExcelVOS = new ArrayList<>();
|
||||
do {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
List<CustMapExcelVO> custMapVOS = new ArrayList<>();
|
||||
if(custMapExcelDTO instanceof CustMapCircleExcelDTO){
|
||||
custMapVOS = custMapMapper.exportCustMapListByCircle((CustMapCircleExcelDTO) custMapExcelDTO);
|
||||
}else{
|
||||
custMapVOS = custMapMapper.exportCustMapListByPolygon((CustMapPolygonExcelDTO) custMapExcelDTO);
|
||||
}
|
||||
custMapExcelVOS.addAll(custMapVOS);
|
||||
pageNum++;
|
||||
} while (pageNum <= pageCount);
|
||||
// String filePath = fileOptService.saveFile("地图拓客", custMapExcelVOS, CustMapExcelVO.class);
|
||||
String filePath = importExportTaskService.exportExcelAndUpload(custMapExcelVOS, CustMapExcelVO.class, "地图拓客", OssFileEnum.CUST_MAP_EXPORT, custMapExcelDTO.getUserName());
|
||||
notificationDownloadService.sendFileNotification(fileNotification, custMapExcelDTO.getUserName(), filePath);
|
||||
redisCache.deleteObject(CUST_MAP_EXPORT_REQUEST + custMapExcelDTO.getUserName());
|
||||
}
|
||||
|
||||
public List<CustMapExcelVO> exportCustMapList(List<Integer> ids) {
|
||||
List<CustInfoRadar> custInfoRadars = custMapMapper.selectBatchIds(ids);
|
||||
return custInfoRadars.stream().map(custInfoRadar -> {
|
||||
CustMapExcelVO custMapExcelVO = new CustMapExcelVO();
|
||||
BeanUtils.copyProperties(custInfoRadar, custMapExcelVO);
|
||||
return custMapExcelVO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.ibs.custmap.service;
|
||||
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapSearchDTO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/6/23
|
||||
**/
|
||||
@Service
|
||||
public class CustMapSearchService {
|
||||
|
||||
private static final String CUST_MAP_SEARCH_KEY = "CUST_MAP_SEARCH_";
|
||||
@Resource
|
||||
private RedisCache redisCache;
|
||||
|
||||
public String saveCustMapSearchTemplate(CustMapSearchDTO custMapSearchDTO) {
|
||||
String filePattern = CUST_MAP_SEARCH_KEY + SecurityUtils.getUsername() + "*";
|
||||
Collection<String> fileKeys = redisCache.keys(filePattern);
|
||||
if (StringUtils.isEmpty(custMapSearchDTO.getTemplateId()) && fileKeys.size() > 4 && !fileKeys.contains(CUST_MAP_SEARCH_KEY)) {
|
||||
throw new ServiceException("最多只能保存5个模板");
|
||||
}
|
||||
if (Objects.isNull(custMapSearchDTO.getTemplateId())) {
|
||||
custMapSearchDTO.setTemplateId(IdUtils.fastSimpleUUID());
|
||||
}
|
||||
String key = CUST_MAP_SEARCH_KEY + SecurityUtils.getUsername() + '_' + custMapSearchDTO.getTemplateId();
|
||||
custMapSearchDTO.setNickName(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||
custMapSearchDTO.setCreateTime(new Date());
|
||||
redisCache.setCacheObject(key, custMapSearchDTO);
|
||||
return "我的模板" + custMapSearchDTO.getTemplateName() + " 保存成功";
|
||||
}
|
||||
|
||||
public List<CustMapSearchDTO> getCustMapSearchTemplate() {
|
||||
List<CustMapSearchDTO> collect = new ArrayList<>();
|
||||
// 根据通知的键和当前用户的用户名生成一个模式字符串,用于匹配通知的键
|
||||
String filePattern = CUST_MAP_SEARCH_KEY + SecurityUtils.getUsername() + "*";
|
||||
// 从Redis缓存中获取匹配该模式的所有键
|
||||
Collection<String> fileKeys = redisCache.keys(filePattern);
|
||||
// 检查获取到的键集合是否为空,如果不为空,则进行进一步处理
|
||||
if (fileKeys != null && fileKeys.size() > 0) {
|
||||
// 使用流操作处理键集合,将每个键对应的值(通知对象)映射出来,并按读取状态排序
|
||||
for (String key : fileKeys) {
|
||||
// 从Redis缓存中获取键对应的值(通知对象)
|
||||
CustMapSearchDTO custMapSearchDTO = redisCache.getCacheObject(key);
|
||||
// 返回通知对象
|
||||
collect.add(custMapSearchDTO);
|
||||
}
|
||||
}
|
||||
return collect;
|
||||
}
|
||||
|
||||
public String deleteCustMapSearchTemplate(String templateId) {
|
||||
String key = CUST_MAP_SEARCH_KEY + SecurityUtils.getUsername() + '_' + templateId;
|
||||
if (!redisCache.hasKey(key)) {
|
||||
throw new ServiceException("模板不存在");
|
||||
}
|
||||
redisCache.deleteObject(key);
|
||||
return "删除成功";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ruoyi.ibs.custmap.service;
|
||||
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.entity.CustInfoRadar;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
|
||||
public interface CustMapSelectService {
|
||||
|
||||
List<CustMapVO> selectCustListByCircle(CustMapCircleDTO custMapCircleDTO);
|
||||
|
||||
Long countCustMapListByCircle(CustMapCircleDTO custMapCircleDTO);
|
||||
|
||||
List<CustMapVO> selectCustListByPolygon(CustMapPolygonDTO custMapPolygonDTO);
|
||||
|
||||
Long countCustMapListByPolygon(CustMapPolygonDTO custMapPolygonDTO);
|
||||
|
||||
CustInfoRadar selectCustInfoRadarById(Integer custId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.ruoyi.ibs.custmap.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.ibs.custmap.domain.entity.DeptAddress;
|
||||
import com.ruoyi.ibs.custmap.mapper.DeptAddressMapper;
|
||||
import com.ruoyi.ibs.grid.domain.dto.BaiduResponseDTO;
|
||||
import com.ruoyi.ibs.grid.domain.vo.AddressResultVO;
|
||||
import com.ruoyi.ibs.grid.service.AddressAnalyseService;
|
||||
import com.ruoyi.ibs.grid.service.BaiduApiService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/26
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DeptAddressService {
|
||||
|
||||
@Resource
|
||||
private DeptAddressMapper deptAddressMapper;
|
||||
|
||||
@Resource
|
||||
private BaiduApiService baiduApiService;
|
||||
|
||||
@Resource
|
||||
private AddressAnalyseService addressAnalyseService;
|
||||
|
||||
public DeptAddress selectDeptAddressById() {
|
||||
return deptAddressMapper.selectById(SecurityUtils.getDeptId());
|
||||
}
|
||||
|
||||
public void initDeptAddress() {
|
||||
List<DeptAddress> deptAddresses = deptAddressMapper.selectList(new LambdaQueryWrapper<>());
|
||||
for (DeptAddress deptAddress : deptAddresses) {
|
||||
if (Objects.nonNull(deptAddress.getLat()) || Objects.isNull(deptAddress.getAddress())){
|
||||
continue;
|
||||
}
|
||||
BaiduResponseDTO geocoding = baiduApiService.geocoding(deptAddress.getAddress());
|
||||
log.info(geocoding.toString());
|
||||
if (Objects.isNull(geocoding.getResult())){
|
||||
continue;
|
||||
}
|
||||
deptAddress.setLng(geocoding.getResult().getLocation().getLng());
|
||||
deptAddress.setLat(geocoding.getResult().getLocation().getLat());
|
||||
|
||||
AddressResultVO addressResultVO = addressAnalyseService.pointInGeometry(deptAddress.getLng(), deptAddress.getLat());
|
||||
if (addressResultVO.getStatus() == 0) {
|
||||
deptAddress.setCity(addressResultVO.getCity());
|
||||
}
|
||||
deptAddressMapper.updateById(deptAddress);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
package com.ruoyi.ibs.custmap.service.impl;
|
||||
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapCircleDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.CustMapPolygonDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.dto.PolygonDTO;
|
||||
import com.ruoyi.ibs.custmap.domain.entity.CustInfoRadar;
|
||||
import com.ruoyi.ibs.custmap.domain.vo.CustMapVO;
|
||||
import com.ruoyi.ibs.custmap.mapper.CustMapMapper;
|
||||
import com.ruoyi.ibs.custmap.service.CustMapSelectService;
|
||||
import com.ruoyi.ibs.grid.service.AddressAnalyseService;
|
||||
import org.locationtech.jts.geom.Coordinate;
|
||||
import org.locationtech.jts.geom.Geometry;
|
||||
import org.locationtech.jts.io.ParseException;
|
||||
import org.locationtech.jts.io.WKTReader;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/15
|
||||
**/
|
||||
|
||||
@Service
|
||||
public class CustMapSelectServiceImpl implements CustMapSelectService {
|
||||
|
||||
@Resource
|
||||
private CustMapMapper custMapMapper;
|
||||
|
||||
@Resource
|
||||
private AddressAnalyseService addressAnalyseService;
|
||||
|
||||
|
||||
/**
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<CustMapVO> selectCustListByCircle(CustMapCircleDTO custMapCircleDTO) {
|
||||
custMapCircleDTO.setDept(SecurityUtils.getHeadId());
|
||||
custMapCircleDTO.setPageIndex((custMapCircleDTO.getNum() - 1) * custMapCircleDTO.getSize());
|
||||
custMapCircleDTO.setLatRange(custMapCircleDTO.getDist() / 111.0);
|
||||
custMapCircleDTO.setLngRange(custMapCircleDTO.getDist() / (111.0 * Math.cos(Math.toRadians(custMapCircleDTO.getTargetLat()))));
|
||||
return custMapMapper.selectCustMapListByCircle(custMapCircleDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param custMapCircleDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Long countCustMapListByCircle(CustMapCircleDTO custMapCircleDTO) {
|
||||
custMapCircleDTO.setDept(SecurityUtils.getHeadId());
|
||||
custMapCircleDTO.setLatRange(custMapCircleDTO.getDist() / 111.0);
|
||||
custMapCircleDTO.setLngRange(custMapCircleDTO.getDist() / (111.0 * Math.cos(Math.toRadians(custMapCircleDTO.getTargetLat()))));
|
||||
return custMapMapper.countCustMapListByCircle(custMapCircleDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param custMapPolygonDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<CustMapVO> selectCustListByPolygon(CustMapPolygonDTO custMapPolygonDTO) {
|
||||
if(!addressAnalyseService.checkWktValid(custMapPolygonDTO.getWkt())){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
custMapPolygonDTO.setDept(SecurityUtils.getHeadId());
|
||||
custMapPolygonDTO.setPageIndex((custMapPolygonDTO.getNum() - 1) * custMapPolygonDTO.getSize());
|
||||
PolygonDTO polygonDTO = getPolygonDTO(custMapPolygonDTO.getWkt());
|
||||
BeanUtils.copyProperties(polygonDTO,custMapPolygonDTO);
|
||||
return custMapMapper.selectCustMapListByPolygon(custMapPolygonDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param custMapPolygonDTO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Long countCustMapListByPolygon(CustMapPolygonDTO custMapPolygonDTO) {
|
||||
if(!addressAnalyseService.checkWktValid(custMapPolygonDTO.getWkt())){
|
||||
return 0L;
|
||||
}
|
||||
custMapPolygonDTO.setDept(SecurityUtils.getHeadId());
|
||||
PolygonDTO polygonDTO = getPolygonDTO(custMapPolygonDTO.getWkt());
|
||||
BeanUtils.copyProperties(polygonDTO,custMapPolygonDTO);
|
||||
return custMapMapper.countCustMapListByPolygon(custMapPolygonDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param custId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public CustInfoRadar selectCustInfoRadarById(Integer id) {
|
||||
return custMapMapper.selectById(id);
|
||||
}
|
||||
|
||||
private PolygonDTO getPolygonDTO(String wkt){
|
||||
PolygonDTO polygonDTO = new PolygonDTO();
|
||||
WKTReader wktReader = new WKTReader();
|
||||
try {
|
||||
Geometry geometry = wktReader.read(wkt);
|
||||
Coordinate[] coordinates = geometry.getCoordinates();
|
||||
for (Coordinate coordinate : coordinates) {
|
||||
if(Objects.isNull(polygonDTO.getMinLat())){
|
||||
polygonDTO.setMinLat(coordinate.getY());
|
||||
}else{
|
||||
polygonDTO.setMinLat(Math.min(coordinate.getY(), polygonDTO.getMinLat()) );
|
||||
}
|
||||
if (Objects.isNull(polygonDTO.getMinLng())){
|
||||
polygonDTO.setMinLng(coordinate.getX());
|
||||
}else {
|
||||
polygonDTO.setMinLng(Math.min(coordinate.getX(), polygonDTO.getMinLng()));
|
||||
}
|
||||
if (Objects.isNull(polygonDTO.getMaxLat())){
|
||||
polygonDTO.setMaxLat(coordinate.getY());
|
||||
}else {
|
||||
polygonDTO.setMaxLat(Math.max(coordinate.getY(), polygonDTO.getMaxLat()));
|
||||
}
|
||||
if (Objects.isNull(polygonDTO.getMaxLng())){
|
||||
polygonDTO.setMaxLng(coordinate.getX());
|
||||
}else {
|
||||
polygonDTO.setMaxLng(Math.max(coordinate.getX(), polygonDTO.getMaxLng()));
|
||||
}
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return polygonDTO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.ruoyi.ibs.customerselect.controller;
|
||||
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.ibs.customerselect.service.CustCsvTagService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/28
|
||||
**/
|
||||
@Api(tags = "CSV客户标签")
|
||||
@RestController
|
||||
@RequestMapping("/csv/tag")
|
||||
public class CustCsvTagController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private CustCsvTagService custCsvTagService;
|
||||
|
||||
@PostMapping("/upload")
|
||||
@Log(title = "CSV客户标签-上传CSV文件并更新")
|
||||
@ApiOperation("上传CSV文件并更新")
|
||||
public AjaxResult uploadCsv(MultipartFile file) {
|
||||
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
||||
if (!suffix.equals("csv")) {
|
||||
return AjaxResult.error("文件格式错误,请上传CSV文件");
|
||||
}
|
||||
custCsvTagService.processCsvInBatches(file, SecurityUtils.getUsername(), SecurityUtils.getHeadId());
|
||||
return AjaxResult.success("文件完成上传,开始更新标签");
|
||||
}
|
||||
|
||||
@GetMapping("/search")
|
||||
@Log(title = "CSV客户标签-查询客户标签")
|
||||
@ApiOperation("查询客户标签")
|
||||
public AjaxResult searchCsv(@RequestParam String custIdc) {
|
||||
return AjaxResult.success(custCsvTagService.getCsvTagJson(custIdc));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.ruoyi.ibs.customerselect.controller;
|
||||
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.page.TableDataPageInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.ibs.customerselect.domain.ListSelectByUser;
|
||||
import com.ruoyi.ibs.customerselect.domain.ListSelectForUser;
|
||||
import com.ruoyi.ibs.customerselect.service.IListSelectService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 清单查询 控制类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Api(tags = "清单查询管理")
|
||||
@RestController
|
||||
@RequestMapping("/system/listselectlist")
|
||||
public class ListSelectController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
IListSelectService listSelectService;
|
||||
|
||||
/**
|
||||
* 获取清单查询列表信息
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('system:getListInfo')")
|
||||
@GetMapping("/list")
|
||||
@Log(title = "清单查询管理-获取清单列表")
|
||||
@ApiOperation("获取清单列表")
|
||||
public TableDataPageInfo list(ListSelectByUser listSelectByUser)
|
||||
{
|
||||
Page<Object> page = startPage();
|
||||
List<ListSelectByUser> list = listSelectService.getListInfoByUser(listSelectByUser);
|
||||
return getDataTable(list ,page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取清单客户列表信息
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('system:getCustListInfo')")
|
||||
@GetMapping("/custlist")
|
||||
@Log(title = "清单查询管理-获取客户清单列表")
|
||||
@ApiOperation("获取客户清单列表")
|
||||
public TableDataPageInfo custList(ListSelectForUser listSelectForUser)
|
||||
{
|
||||
Page<Object> page = startPage();
|
||||
List<ListSelectForUser> custList = listSelectService.getCustListInfoByUser(listSelectForUser );
|
||||
return getDataTable(custList ,page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量导出分群客户
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('system:custlist:export')")
|
||||
@Log(title = "清单查询管理-批量导出分群客户", businessType = BusinessType.IMPORT)
|
||||
@ApiOperation("批量导出清单列表")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "groupId", value = "客群id", dataType = "String", dataTypeClass = String.class),
|
||||
@ApiImplicitParam(name = "campaignId", value = "客群id", dataType = "String", dataTypeClass = String.class),
|
||||
})
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, String custPattern,String groupId, String campaignId,Long deptId,@RequestParam(value = "custIds" , required = true) List<String> custIds) throws Exception{
|
||||
if(groupId.isEmpty() || custIds.isEmpty()){
|
||||
throw new ServiceException("请选择需要导出的数据!");
|
||||
}
|
||||
listSelectService.selectListExportByGroupId(response,custPattern,groupId,campaignId,deptId,custIds);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
package com.ruoyi.ibs.customerselect.controller;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataPageInfo;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.ibs.customerselect.domain.*;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.ibs.customerselect.service.IMyCustomerService;
|
||||
import com.ruoyi.ibs.grid.domain.excel.NewPersonAnchor;
|
||||
import com.ruoyi.ibs.list.service.ISysCampaignGroupCustomerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.rmi.ServerException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 我的客户 控制类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Api("客户基本信息管理")
|
||||
@RestController
|
||||
@RequestMapping("/system/custBaseInfo")
|
||||
public class MyCustomerController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IMyCustomerService myCustomerService;
|
||||
|
||||
@Autowired
|
||||
ISysCampaignGroupCustomerService iSysCampaignGroupCustomerService;
|
||||
|
||||
private static Logger logger= LoggerFactory.getLogger(MyCustomerController.class);
|
||||
/**
|
||||
* 获取我的客户信息列表
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('system:custBaseInfo:list')")
|
||||
@Log(title = "我的客户-获取客户信息列表")
|
||||
@PostMapping("/list")
|
||||
@ApiOperation("获取客户信息列表")
|
||||
public AjaxResult list(@RequestBody CustBaseInfo sysCustomerBasedata)
|
||||
// public TableDataPageInfo<CustBaseInfo> list(CustBaseInfo sysCustomerBasedata)
|
||||
{
|
||||
// Page<Object> page = startPage();
|
||||
List<CustBaseInfo> custBaseInfoList = myCustomerService.selectSysCustomerBasedataList(sysCustomerBasedata);
|
||||
logger.info(custBaseInfoList.toString());
|
||||
// return getDataTable(custBaseInfoList ,page);
|
||||
return AjaxResult.success(custBaseInfoList);
|
||||
}
|
||||
|
||||
@Log(title = "我的客户-获取商户云相关信息")
|
||||
@GetMapping("/merchantMessage")
|
||||
@ApiOperation("获取商户云相关信息")
|
||||
public AjaxResult merchantMessage( String custId)
|
||||
// public TableDataPageInfo<CustBaseInfo> list(CustBaseInfo sysCustomerBasedata)
|
||||
{
|
||||
// Page<Object> page = startPage();
|
||||
MerchantMcspInfo merchantMcspInfo = myCustomerService.selectmerchantMessage(custId);
|
||||
// logger.info(merchantMcspInfo.toString());
|
||||
// return getDataTable(custBaseInfoList ,page);
|
||||
return AjaxResult.success(merchantMcspInfo);
|
||||
}
|
||||
|
||||
@GetMapping("/searchList")
|
||||
@ApiOperation("获取高级筛选项")
|
||||
public AjaxResult searchList(CustBaseInfo sysCustomerBasedata) {
|
||||
CustListSearchVo custBaseInfoList = myCustomerService.selectCustomListSearchVo(sysCustomerBasedata);
|
||||
logger.info(custBaseInfoList.toString());
|
||||
// return getDataTable(custBaseInfoList ,page);
|
||||
return AjaxResult.success(custBaseInfoList);
|
||||
}
|
||||
@Log(title = "我的客户-我的客户导出(企业)")
|
||||
@PostMapping("/exportBusiness")
|
||||
@ApiOperation("我的客户导出(企业)")
|
||||
public void exportBusiness(HttpServletResponse response, @RequestBody List<BusinessExportVo> list)
|
||||
{
|
||||
for (BusinessExportVo b:list
|
||||
) {
|
||||
b.setCustPattern("2");
|
||||
}
|
||||
try {
|
||||
ExcelUtil<BusinessExportVo> util = new ExcelUtil<>(BusinessExportVo.class);
|
||||
util.exportExcel(response, list, "sheet1");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@Log(title = "我的客户-我的客户导出1000条(企业)")
|
||||
@PostMapping("/exportBusiness1000")
|
||||
@ApiOperation("我的客户导出1000条(企业)")
|
||||
public void exportBusiness1000(HttpServletResponse response, @RequestBody CustBaseInfo sysCustomerBasedata)
|
||||
{
|
||||
sysCustomerBasedata.setSize(1000);
|
||||
sysCustomerBasedata.setNum(1);
|
||||
List<CustBaseInfo> custBaseInfoList = myCustomerService.selectSysCustomerBasedataList(sysCustomerBasedata);
|
||||
List<BusinessExportVo> list = new ArrayList<>();
|
||||
for (CustBaseInfo b:custBaseInfoList
|
||||
) {
|
||||
BusinessExportVo businessExportVo = new BusinessExportVo();
|
||||
BeanUtils.copyProperties(b,businessExportVo);
|
||||
businessExportVo.setCustPattern("2");
|
||||
list.add(businessExportVo);
|
||||
}
|
||||
try {
|
||||
ExcelUtil<BusinessExportVo> util = new ExcelUtil<>(BusinessExportVo.class);
|
||||
util.exportExcel(response, list, "sheet1");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "我的客户-我的客户导出(商户)")
|
||||
@PostMapping("/exportMerchant")
|
||||
@ApiOperation("我的客户导出(商户)")
|
||||
public void exportMerchant(HttpServletResponse response, @RequestBody List<MerchantExportVo> list)
|
||||
{
|
||||
for (MerchantExportVo m:list
|
||||
) {
|
||||
m.setCustPattern("1");
|
||||
}
|
||||
try {
|
||||
ExcelUtil<MerchantExportVo> util = new ExcelUtil<>(MerchantExportVo.class);
|
||||
util.exportExcel(response, list, "sheet1");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "我的客户-我的客户导出1000条(商户)")
|
||||
@PostMapping("/exportMerchant1000")
|
||||
@ApiOperation("我的客户导出1000条(商户)")
|
||||
public void exportMerchant1000(HttpServletResponse response, @RequestBody CustBaseInfo sysCustomerBasedata)
|
||||
{
|
||||
sysCustomerBasedata.setSize(1000);
|
||||
sysCustomerBasedata.setNum(1);
|
||||
List<CustBaseInfo> custBaseInfoList = myCustomerService.selectSysCustomerBasedataList(sysCustomerBasedata);
|
||||
List<MerchantExportVo> list = new ArrayList<>();
|
||||
for (CustBaseInfo b:custBaseInfoList
|
||||
) {
|
||||
MerchantExportVo merchantExportVo = new MerchantExportVo();
|
||||
BeanUtils.copyProperties(b,merchantExportVo);
|
||||
merchantExportVo.setCustPattern("1");
|
||||
list.add(merchantExportVo);
|
||||
}
|
||||
try {
|
||||
ExcelUtil<MerchantExportVo> util = new ExcelUtil<>(MerchantExportVo.class);
|
||||
util.exportExcel(response, list, "sheet1");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "我的客户-我的客户导出(个人)")
|
||||
@PostMapping("/exportRetail")
|
||||
@ApiOperation("我的客户导出(个人)")
|
||||
public void exportRetail(HttpServletResponse response, @RequestBody List<RetailExportVo> list)
|
||||
{
|
||||
for (RetailExportVo r:list
|
||||
) {
|
||||
r.setCustPattern("0");
|
||||
}
|
||||
try {
|
||||
ExcelUtil<RetailExportVo> util = new ExcelUtil<>(RetailExportVo.class);
|
||||
util.exportExcel(response, list, "sheet1");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "我的客户-我的客户导出1000条(个人)")
|
||||
@PostMapping("/exportRetail1000")
|
||||
@ApiOperation("我的客户导出1000条(个人)")
|
||||
public void exportRetail1000(HttpServletResponse response, @RequestBody CustBaseInfo sysCustomerBasedata)
|
||||
{
|
||||
sysCustomerBasedata.setSize(1000);
|
||||
sysCustomerBasedata.setNum(1);
|
||||
List<CustBaseInfo> custBaseInfoList = myCustomerService.selectSysCustomerBasedataList(sysCustomerBasedata);
|
||||
List<RetailExportVo> list = new ArrayList<>();
|
||||
for (CustBaseInfo b:custBaseInfoList
|
||||
) {
|
||||
RetailExportVo retailExportVo = new RetailExportVo();
|
||||
BeanUtils.copyProperties(b,retailExportVo);
|
||||
retailExportVo.setCustPattern("0");
|
||||
list.add(retailExportVo);
|
||||
}
|
||||
try {
|
||||
ExcelUtil<RetailExportVo> util = new ExcelUtil<>(RetailExportVo.class);
|
||||
util.exportExcel(response, list, "sheet1");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@Log(title = "我的客户-补充经纬度")
|
||||
@PostMapping("/selectAddress")
|
||||
@ApiOperation("补充经纬度")
|
||||
public AjaxResult selectAddress(@RequestBody List<CustBaseInfo> list)
|
||||
{
|
||||
return AjaxResult.success(myCustomerService.selectAddress(list));
|
||||
}
|
||||
|
||||
|
||||
@Log(title = "我的客户-添加至已有活动")
|
||||
@PostMapping("/appointCustCamp")
|
||||
@ApiOperation("添加至已有活动")
|
||||
public AjaxResult appointCustCamp(String custId,String custName,String custIdc,String custPhone,String custIsn,String socialCreditCode,String lpName,String campaignId,String custType) throws ServerException {
|
||||
if(!StringUtils.isNotEmpty(custId)){
|
||||
return AjaxResult.warn("客户ID不能为空");
|
||||
}
|
||||
return AjaxResult.success(iSysCampaignGroupCustomerService.appointCustCamp( custId, custName, custIdc, custPhone, custIsn,socialCreditCode,lpName, campaignId, custType));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.ruoyi.ibs.customerselect.controller;
|
||||
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.ibs.customerselect.service.MyCustomerGridSelectService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/8
|
||||
**/
|
||||
@Api(tags = "我的客户-网格筛选")
|
||||
@RestController
|
||||
@RequestMapping("/my/customer/grid/select")
|
||||
public class MyCustomerGridSelectController extends BaseController {
|
||||
@Resource
|
||||
private MyCustomerGridSelectService myCustomerGridSelectService;
|
||||
|
||||
@ApiOperation("我的客户-行政网格下拉框")
|
||||
@Log(title = "我的客户行政网格下拉框")
|
||||
@GetMapping("/region")
|
||||
public AjaxResult getRegionGridList(@RequestParam String gridLevel, @RequestParam String opsDept) {
|
||||
return AjaxResult.success(myCustomerGridSelectService.getRegionGridList(gridLevel, opsDept));
|
||||
}
|
||||
|
||||
@ApiOperation("我的客户-虚拟网格下拉框")
|
||||
@Log(title = "我的客户虚拟网格下拉框")
|
||||
@GetMapping("/virtual")
|
||||
public AjaxResult getVirtualGridList(@RequestParam String opsDept) {
|
||||
return AjaxResult.success(myCustomerGridSelectService.getVirtualGridList(opsDept));
|
||||
}
|
||||
|
||||
@ApiOperation("我的客户-特色网格下拉框")
|
||||
@Log(title = "我的客户虚拟网格下拉框")
|
||||
@GetMapping("/draw")
|
||||
public AjaxResult getDrawGridList(@RequestParam String opsDept) {
|
||||
return AjaxResult.success(myCustomerGridSelectService.getDrawGridList(opsDept));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,300 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class BusinessExportVo {
|
||||
/** 客户标签 */
|
||||
@Excel(name = "客户分类",readConverterExp = "0=个人,1=商户,2=企业")
|
||||
private String custPattern;
|
||||
|
||||
/** 企业名称 */
|
||||
@Excel(name = "企业名称")
|
||||
private String custName;
|
||||
@Excel(name = "归属总行网格名称")
|
||||
private String regionTopGridName;
|
||||
|
||||
@Excel(name = "归属支行网格名称")
|
||||
private String regionSecGridName;
|
||||
/** 归属支行 */
|
||||
@Excel(name = "行政网格归属支行")
|
||||
private String belongBranchName;
|
||||
|
||||
/** 归属网点 */
|
||||
@Excel(name = "行政网格归属网点")
|
||||
private String belongOutletName;
|
||||
|
||||
@Excel(name = "归属自定义地图网格名称")
|
||||
private String drawGridName;
|
||||
|
||||
@Excel(name = "自定义地图网格归属支行")
|
||||
private String drawBranchNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属网点")
|
||||
private String drawOutletNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属客户经理")
|
||||
private String drawUserNames;
|
||||
/**
|
||||
* 归属 网格客户经理名,多个按照逗号 隔开
|
||||
*/
|
||||
@Excel(name = "行政网格归属客户经理")
|
||||
private String belongUserNameList;
|
||||
@Excel(name = "归属自定义名单网格名称")
|
||||
private String virtualGridName;
|
||||
@Excel(name = "自定义名单网格归属支行")
|
||||
private String virtualBranchNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属网点")
|
||||
private String virtualOutletNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属客户经理")
|
||||
private String virtualUserNames;
|
||||
|
||||
|
||||
|
||||
|
||||
/** 法人姓名 */
|
||||
@Excel(name = "法人姓名")
|
||||
private String lpName;
|
||||
|
||||
/** 法人电话 */
|
||||
@Excel(name = "法人电话")
|
||||
private String custPhone;
|
||||
|
||||
|
||||
/** 客户类型 */
|
||||
@Excel(name = "客户类型",readConverterExp = "0=存量,1=潜在,2=暂无")
|
||||
// @Excel(name = "客户类型")
|
||||
private String custType ;
|
||||
|
||||
/** 产品标签 */
|
||||
// @Excel(name = "产品标签")
|
||||
@Excel(name = "产品标签",readConverterExp = "000=暂无,100=存款,010=贷款,001=中收,110=存款、贷款,101=存款、中收,011=贷款、中收,111=存款、贷款、中收")
|
||||
private String custTag;
|
||||
|
||||
/** 企业规模 */
|
||||
@Excel(name = "企业规模",readConverterExp = "0=小型,1=中型,2=大型,3=微型,4=其他")
|
||||
// @Excel(name = "企业规模")
|
||||
private String custScale;
|
||||
|
||||
|
||||
//企业业务指标
|
||||
/**
|
||||
* 活期存款余额
|
||||
*/
|
||||
@Excel(name = "活期存款余额(元)")
|
||||
private String hqCurBalance;
|
||||
/**
|
||||
* 保证金存款余额
|
||||
*/
|
||||
@Excel(name = "保证金存款余额(元)")
|
||||
private String bzCurBalance;
|
||||
/**
|
||||
* 是否授信
|
||||
*/
|
||||
@Excel(name = "是否授信")
|
||||
private String isCredit;
|
||||
/**
|
||||
* 贷款余额
|
||||
*/
|
||||
@Excel(name = "贷款余额(元)")
|
||||
private String loanBalanceCny;
|
||||
/**
|
||||
* 贷款年日均
|
||||
*/
|
||||
@Excel(name = "贷款年日均(元)")
|
||||
private String loanYearDailyaverage;
|
||||
/**
|
||||
* 是否普惠签约
|
||||
*/
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isHtqy;
|
||||
/**
|
||||
* 是否有签发承兑汇票
|
||||
*/
|
||||
@Excel(name = "是否有签发承兑汇票")
|
||||
private String financeProd716OpenFlag;
|
||||
/**
|
||||
* 承兑汇票余额
|
||||
*/
|
||||
@Excel(name = "承兑汇票余额(元)")
|
||||
private String financeProd716Balance;
|
||||
/**
|
||||
* 是否有贴现业务
|
||||
*/
|
||||
@Excel(name = "是否有贴现业务")
|
||||
private String financeProd711OpenFlag;
|
||||
/**
|
||||
* 贴现金额
|
||||
*/
|
||||
@Excel(name = "贴现金额(元)")
|
||||
private String financeProd711Balance;
|
||||
/**
|
||||
* 是否有保函业务
|
||||
*/
|
||||
@Excel(name = "是否有保函业务")
|
||||
private String intlBussinessJcbhOpenFlag;
|
||||
/**
|
||||
* 是否为有效代发工资客户
|
||||
*/
|
||||
@Excel(name = "是否为有效代发工资客户")
|
||||
private String isUstr;
|
||||
/**
|
||||
* 月均代发工资笔数
|
||||
*/
|
||||
@Excel(name = "月均代发工资笔数")
|
||||
private String ustrCountPerM;
|
||||
/**
|
||||
* 月均代发工资金额(元)
|
||||
*/
|
||||
@Excel(name = "月均代发工资金额(元)")
|
||||
private String ustrBalM;
|
||||
/**
|
||||
* 是否代扣电费
|
||||
*/
|
||||
@Excel(name = "是否代扣电费")
|
||||
private String elecchargeSignFlag;
|
||||
/**
|
||||
* 是否代扣水费
|
||||
*/
|
||||
@Excel(name = "是否代扣水费")
|
||||
private String waterchargeSignFlag;
|
||||
/**
|
||||
* 是否代扣税费
|
||||
*/
|
||||
@Excel(name = "是否代扣税费")
|
||||
private String taxdeductionSignFlag;
|
||||
/**
|
||||
* 是否票据宝签约
|
||||
*/
|
||||
@Excel(name = "是否票据宝签约")
|
||||
private String pjb;
|
||||
/**
|
||||
* 是否财资宝签约
|
||||
*/
|
||||
@Excel(name = "是否财资宝签约")
|
||||
private String czb;
|
||||
/**
|
||||
* 是否收付宝签约
|
||||
*/
|
||||
@Excel(name = "是否收付宝签约")
|
||||
private String sfb;
|
||||
/**
|
||||
* 是否贸融宝签约
|
||||
*/
|
||||
@Excel(name = "是否贸融宝签约")
|
||||
private String mrb;
|
||||
/**
|
||||
* 是否数字生态产品签约
|
||||
*/
|
||||
@Excel(name = "是否数字生态产品签约")
|
||||
private String szst;
|
||||
/**
|
||||
* 是否开户
|
||||
*/
|
||||
@Excel(name = "是否开户")
|
||||
private String isOpenSts;
|
||||
/**
|
||||
* 是否国际结算业务
|
||||
*/
|
||||
@Excel(name = "是否国际结算业务")
|
||||
private String intlBussinessOpenFlag;
|
||||
/**
|
||||
* 是否有远期结算汇业务
|
||||
*/
|
||||
@Excel(name = "是否有远期结算汇业务")
|
||||
private String intlBussiness325OpenFlag;
|
||||
|
||||
@Excel(name = "近365天有无走访")
|
||||
private String is365zf;
|
||||
@Excel(name = "近180天有无走访")
|
||||
private String is180zf;
|
||||
@Excel(name = "近90天有无走访")
|
||||
private String is90zf;
|
||||
@Excel(name = "近30天有无走访")
|
||||
private String is30zf;
|
||||
|
||||
public String getCustPattern() {
|
||||
return custPattern;
|
||||
}
|
||||
|
||||
public void setCustPattern(String custPattern) {
|
||||
this.custPattern = custPattern;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getBelongBranchName() {
|
||||
return belongBranchName;
|
||||
}
|
||||
|
||||
public void setBelongBranchName(String belongBranchName) {
|
||||
this.belongBranchName = belongBranchName;
|
||||
}
|
||||
|
||||
public String getBelongOutletName() {
|
||||
return belongOutletName;
|
||||
}
|
||||
|
||||
public void setBelongOutletName(String belongOutletName) {
|
||||
this.belongOutletName = belongOutletName;
|
||||
}
|
||||
|
||||
public String getLpName() {
|
||||
return lpName;
|
||||
}
|
||||
|
||||
public void setLpName(String lpName) {
|
||||
this.lpName = lpName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
public String getBelongUserNameList() {
|
||||
return belongUserNameList;
|
||||
}
|
||||
|
||||
public void setBelongUserNameList(String belongUserNameList) {
|
||||
this.belongUserNameList = belongUserNameList;
|
||||
}
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getCustTag() {
|
||||
return custTag;
|
||||
}
|
||||
|
||||
public void setCustTag(String custTag) {
|
||||
this.custTag = custTag;
|
||||
}
|
||||
|
||||
public String getCustScale() {
|
||||
return custScale;
|
||||
}
|
||||
|
||||
public void setCustScale(String custScale) {
|
||||
this.custScale = custScale;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class ContinuousParam extends BaseEntity {
|
||||
private String key;
|
||||
private List<String> value;
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public List<String> getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(List<String> value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,715 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 客户基本信息对象 sys_customer_basedata
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-09-10
|
||||
*/
|
||||
@Data
|
||||
public class CustBaseInfo extends BaseEntity
|
||||
{
|
||||
|
||||
/** id */
|
||||
private Long id;
|
||||
|
||||
/** 客户标签 */
|
||||
@NotNull(message = "客户标签不能为空")
|
||||
@Excel(name = "客户分类",readConverterExp = "0=个人,1=商户,2=企业")
|
||||
private String custPattern = "0";
|
||||
|
||||
/** 客户类型 */
|
||||
@NotNull(message = "客户类型不能为空")
|
||||
@Excel(name = "客户类型",readConverterExp = "0=存量,1=潜在")
|
||||
private String custType = "2";
|
||||
|
||||
/** 产品标签 */
|
||||
@NotNull(message = "产品标签不能为空")
|
||||
@Excel(name = "产品标签",readConverterExp = "100=存款,010=贷款,001=中收,110=存款、贷款,101=存款、中收,011=贷款、中收,111=存款、贷款、中收")
|
||||
private String custTag = "111";
|
||||
|
||||
/** 企业规模 */
|
||||
@NotNull(message = "企业规模不能为空")
|
||||
@Excel(name = "企业规模",readConverterExp = "0=无,1=小型,2=中型,3=大型")
|
||||
private String custScale;
|
||||
|
||||
//规模小型
|
||||
private String custScale1;
|
||||
//规模中型
|
||||
private String custScale2;
|
||||
//规模大型
|
||||
private String custScale3;
|
||||
//规模微型
|
||||
private String custScale0;
|
||||
|
||||
private String opsDept;
|
||||
|
||||
private String custLevel;
|
||||
|
||||
private Long branchId;
|
||||
|
||||
private Long outletId;
|
||||
|
||||
private String cmpmUserName;
|
||||
|
||||
private Long cmpmBranchId;
|
||||
|
||||
private Long cmpmOutletId;
|
||||
|
||||
private String deptCode;
|
||||
|
||||
private boolean isHead;
|
||||
|
||||
private List<String> custScaleList;
|
||||
|
||||
/** 企业名称 */
|
||||
@Excel(name = "企业名称")
|
||||
private String custName;
|
||||
|
||||
@Excel(name = "归属总行网格名称")
|
||||
private String regionTopGridName;
|
||||
|
||||
@Excel(name = "归属支行网格名称")
|
||||
private String regionSecGridName;
|
||||
/** 归属支行 */
|
||||
@Excel(name = "行政网格归属支行")
|
||||
private String belongBranchName;
|
||||
|
||||
/** 归属网点 */
|
||||
@Excel(name = "行政网格归属网点")
|
||||
private String belongOutletName;
|
||||
|
||||
/**
|
||||
* 归属 网格客户经理名,多个按照逗号 隔开
|
||||
*/
|
||||
@Excel(name = "行政网格归属客户经理")
|
||||
private String belongUserNameList;
|
||||
|
||||
/** 管护客户经理 */
|
||||
private String manageUserName;
|
||||
|
||||
/** 网格客户经理 */
|
||||
private String belongUserName;
|
||||
|
||||
/** 法人姓名 */
|
||||
private String lpName;
|
||||
|
||||
/** 法人电话 */
|
||||
private String custPhone;
|
||||
|
||||
/** 注册资本 */
|
||||
private String custCapital;
|
||||
|
||||
/** 是否贷款 */
|
||||
private String loanTag;
|
||||
|
||||
/** 客户状态 */
|
||||
private String status;
|
||||
|
||||
/** 归属机构 */
|
||||
private Long userDeptId;
|
||||
|
||||
private Long deptId;
|
||||
private Long outletsId;
|
||||
private Long userId;
|
||||
private String userName;
|
||||
private String custId;
|
||||
|
||||
private String roleName;
|
||||
|
||||
|
||||
|
||||
|
||||
int num;
|
||||
int size;
|
||||
|
||||
int start;
|
||||
int end;
|
||||
String latitude;
|
||||
String longitude;
|
||||
|
||||
private List<Long> regionTopGridIds;
|
||||
|
||||
private List<Long> regionSecGridIds;
|
||||
|
||||
private List<Long> virtualGridIds;
|
||||
|
||||
private List<Long> drawGridIds;
|
||||
|
||||
private Boolean isSelectGrid;
|
||||
|
||||
|
||||
private String regionBranchNames;
|
||||
|
||||
private String regionOutletNames;
|
||||
|
||||
private String regionUserNames;
|
||||
@Excel(name = "归属自定义地图网格名称")
|
||||
private String drawGridName;
|
||||
|
||||
@Excel(name = "自定义地图网格归属支行")
|
||||
private String drawBranchNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属网点")
|
||||
private String drawOutletNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属客户经理")
|
||||
private String drawUserNames;
|
||||
@Excel(name = "归属自定义名单网格名称")
|
||||
private String virtualGridName;
|
||||
@Excel(name = "自定义名单网格归属支行")
|
||||
private String virtualBranchNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属网点")
|
||||
private String virtualOutletNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属客户经理")
|
||||
private String virtualUserNames;
|
||||
|
||||
private String asset;
|
||||
|
||||
private String credit;
|
||||
|
||||
//个人商户业务指标
|
||||
/**
|
||||
* 活期存款余额
|
||||
*/
|
||||
@Excel(name = "活期存款余额(元)")
|
||||
private String curBalD;
|
||||
/**
|
||||
* 定期存款余额
|
||||
*/
|
||||
@Excel(name = "定期存款余额(元)")
|
||||
private String curBalT;
|
||||
/**
|
||||
* 贷款余额
|
||||
*/
|
||||
@Excel(name = "贷款余额(元)")
|
||||
private String balLoan;
|
||||
/**
|
||||
* 五级不良贷款余额
|
||||
*/
|
||||
@Excel(name = "五级不良贷款余额(元)")
|
||||
private String curBal5Bad;
|
||||
/**
|
||||
* 活期存款年日均
|
||||
*/
|
||||
@Excel(name = "活期存款年日均(元)")
|
||||
private String curDAve;
|
||||
/**
|
||||
* 定期存款年日均
|
||||
*/
|
||||
@Excel(name = "定期存款年日均(元)")
|
||||
private String curTAve;
|
||||
/**
|
||||
* 贷款年日均
|
||||
*/
|
||||
@Excel(name = "贷款年日均(元)")
|
||||
private String loanAve;
|
||||
/**
|
||||
* 是否建档
|
||||
*/
|
||||
@Excel(name = "是否建档")
|
||||
private String isPh;
|
||||
/**
|
||||
* 是否授信
|
||||
*/
|
||||
@Excel(name = "是否授信")
|
||||
private String isSx;
|
||||
/**
|
||||
* 是否合同签约
|
||||
*/
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isYxht;
|
||||
/**
|
||||
* 是否持有信用卡
|
||||
*/
|
||||
@Excel(name = "是否持有信用卡")
|
||||
private String isXyk;
|
||||
/**
|
||||
* 是否开通丰收互联
|
||||
*/
|
||||
@Excel(name = "是否开通丰收互联")
|
||||
private String fshl;
|
||||
/**
|
||||
* 是否办理收单
|
||||
*/
|
||||
@Excel(name = "是否办理收单")
|
||||
private String isSd;
|
||||
/**
|
||||
* 是否办理etc
|
||||
*/
|
||||
@Excel(name = "是否办理etc")
|
||||
private String etc;
|
||||
/**
|
||||
* 是否代扣电费
|
||||
*/
|
||||
@Excel(name = "是否代扣电费")
|
||||
private String dian;
|
||||
/**
|
||||
* 是否贷款黑名单
|
||||
*/
|
||||
@Excel(name = "是否贷款黑名单")
|
||||
private String isBlack;
|
||||
/**
|
||||
* 是否五级不良贷款客户
|
||||
*/
|
||||
@Excel(name = "是否五级不良贷款客户")
|
||||
private String isBad;
|
||||
|
||||
|
||||
|
||||
//企业业务指标
|
||||
/**
|
||||
* 活期存款余额
|
||||
*/
|
||||
@Excel(name = "活期存款余额(元)")
|
||||
private String hqCurBalance;
|
||||
/**
|
||||
* 保证金存款余额
|
||||
*/
|
||||
@Excel(name = "保证金存款余额(元)")
|
||||
private String bzCurBalance;
|
||||
/**
|
||||
* 是否授信
|
||||
*/
|
||||
@Excel(name = "是否授信")
|
||||
private String isCredit;
|
||||
/**
|
||||
* 贷款余额
|
||||
*/
|
||||
@Excel(name = "贷款余额(元)")
|
||||
private String loanBalanceCny;
|
||||
/**
|
||||
* 贷款年日均
|
||||
*/
|
||||
@Excel(name = "贷款年日均(元)")
|
||||
private String loanYearDailyaverage;
|
||||
/**
|
||||
* 是否普惠签约
|
||||
*/
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isHtqy;
|
||||
/**
|
||||
* 是否有签发承兑汇票
|
||||
*/
|
||||
@Excel(name = "是否有签发承兑汇票")
|
||||
private String financeProd716OpenFlag;
|
||||
/**
|
||||
* 承兑汇票余额
|
||||
*/
|
||||
@Excel(name = "承兑汇票余额(元)")
|
||||
private String financeProd716Balance;
|
||||
/**
|
||||
* 是否有贴现业务
|
||||
*/
|
||||
@Excel(name = "是否有贴现业务")
|
||||
private String financeProd711OpenFlag;
|
||||
/**
|
||||
* 贴现金额
|
||||
*/
|
||||
@Excel(name = "贴现金额(元)")
|
||||
private String financeProd711Balance;
|
||||
/**
|
||||
* 是否有保函业务
|
||||
*/
|
||||
@Excel(name = "是否有保函业务")
|
||||
private String intlBussinessJcbhOpenFlag;
|
||||
/**
|
||||
* 是否为有效代发工资客户
|
||||
*/
|
||||
@Excel(name = "是否为有效代发工资客户")
|
||||
private String isUstr;
|
||||
/**
|
||||
* 月均代发工资笔数
|
||||
*/
|
||||
@Excel(name = "月均代发工资笔数")
|
||||
private String ustrCountPerM;
|
||||
/**
|
||||
* 月均代发工资金额(元)
|
||||
*/
|
||||
@Excel(name = "月均代发工资金额(元)")
|
||||
private String ustrBalM;
|
||||
/**
|
||||
* 是否代扣电费
|
||||
*/
|
||||
@Excel(name = "是否代扣电费")
|
||||
private String elecchargeSignFlag;
|
||||
/**
|
||||
* 是否代扣水费
|
||||
*/
|
||||
@Excel(name = "是否代扣水费")
|
||||
private String waterchargeSignFlag;
|
||||
/**
|
||||
* 是否代扣税费
|
||||
*/
|
||||
@Excel(name = "是否代扣税费")
|
||||
private String taxdeductionSignFlag;
|
||||
/**
|
||||
* 是否票据宝签约
|
||||
*/
|
||||
@Excel(name = "是否票据宝签约")
|
||||
private String pjb;
|
||||
/**
|
||||
* 是否财资宝签约
|
||||
*/
|
||||
@Excel(name = "是否财资宝签约")
|
||||
private String czb;
|
||||
/**
|
||||
* 是否收付宝签约
|
||||
*/
|
||||
@Excel(name = "是否收付宝签约")
|
||||
private String sfb;
|
||||
/**
|
||||
* 是否贸融宝签约
|
||||
*/
|
||||
@Excel(name = "是否贸融宝签约")
|
||||
private String mrb;
|
||||
/**
|
||||
* 是否数字生态产品签约
|
||||
*/
|
||||
@Excel(name = "是否数字生态产品签约")
|
||||
private String szst;
|
||||
/**
|
||||
* 是否开户
|
||||
*/
|
||||
@Excel(name = "是否开户")
|
||||
private String isOpenSts;
|
||||
/**
|
||||
* 是否国际结算业务
|
||||
*/
|
||||
@Excel(name = "是否国际结算业务")
|
||||
private String intlBussinessOpenFlag;
|
||||
/**
|
||||
* 是否有远期结算汇业务
|
||||
*/
|
||||
@Excel(name = "是否有远期结算汇业务")
|
||||
private String intlBussiness325OpenFlag;
|
||||
@Excel(name = "近365天有无走访")
|
||||
private String is365zf;
|
||||
@Excel(name = "近180天有无走访")
|
||||
private String is180zf;
|
||||
@Excel(name = "近90天有无走访")
|
||||
private String is90zf;
|
||||
@Excel(name = "近30天有无走访")
|
||||
private String is30zf;
|
||||
|
||||
|
||||
public String getBelongUserNameList() {
|
||||
return belongUserNameList;
|
||||
}
|
||||
|
||||
public void setBelongUserNameList(String belongUserNameList) {
|
||||
this.belongUserNameList = belongUserNameList;
|
||||
}
|
||||
|
||||
public String getOpsDept() {
|
||||
return opsDept;
|
||||
}
|
||||
|
||||
public void setOpsDept(String opsDept) {
|
||||
this.opsDept = opsDept;
|
||||
}
|
||||
|
||||
public String getCustScale1() {
|
||||
return custScale1;
|
||||
}
|
||||
|
||||
public void setCustScale1(String custScale1) {
|
||||
this.custScale1 = custScale1;
|
||||
}
|
||||
|
||||
public String getCustScale2() {
|
||||
return custScale2;
|
||||
}
|
||||
|
||||
public void setCustScale2(String custScale2) {
|
||||
this.custScale2 = custScale2;
|
||||
}
|
||||
|
||||
public String getCustScale3() {
|
||||
return custScale3;
|
||||
}
|
||||
|
||||
public void setCustScale3(String custScale3) {
|
||||
this.custScale3 = custScale3;
|
||||
}
|
||||
|
||||
public String getCustScale0() {
|
||||
return custScale0;
|
||||
}
|
||||
|
||||
public void setCustScale0(String custScale0) {
|
||||
this.custScale0 = custScale0;
|
||||
}
|
||||
public String getLatitude() {
|
||||
return latitude;
|
||||
}
|
||||
|
||||
public void setLatitude(String latitude) {
|
||||
this.latitude = latitude;
|
||||
}
|
||||
|
||||
public String getLongitude() {
|
||||
return longitude;
|
||||
}
|
||||
|
||||
public void setLongitude(String longitude) {
|
||||
this.longitude = longitude;
|
||||
}
|
||||
|
||||
public int getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public void setStart(int start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public int getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
public void setEnd(int end) {
|
||||
this.end = end;
|
||||
}
|
||||
|
||||
public int getNum() {
|
||||
return num;
|
||||
}
|
||||
|
||||
public void setNum(int num) {
|
||||
this.num = num;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setSize(int size) {
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@NotBlank(message = "客户标签不能为空")
|
||||
public String getCustPattern() {
|
||||
return custPattern;
|
||||
}
|
||||
|
||||
public void setCustPattern(String custPattern) {
|
||||
this.custPattern = custPattern;
|
||||
}
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getCustTag() {
|
||||
return custTag;
|
||||
}
|
||||
|
||||
public void setCustTag(String custTag) {
|
||||
this.custTag = custTag;
|
||||
}
|
||||
|
||||
public String getCustScale() {
|
||||
return custScale;
|
||||
}
|
||||
|
||||
public void setCustScale(String custScale) {
|
||||
this.custScale = custScale;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getBelongBranchName() {
|
||||
return belongBranchName;
|
||||
}
|
||||
|
||||
public void setBelongBranchName(String belongBranchName) {
|
||||
this.belongBranchName = belongBranchName;
|
||||
}
|
||||
|
||||
public String getBelongOutletName() {
|
||||
return belongOutletName;
|
||||
}
|
||||
|
||||
public void setBelongOutletName(String belongOutletName) {
|
||||
this.belongOutletName = belongOutletName;
|
||||
}
|
||||
|
||||
public String getManageUserName() {
|
||||
return manageUserName;
|
||||
}
|
||||
|
||||
public void setManageUserName(String manageUserName) {
|
||||
this.manageUserName = manageUserName;
|
||||
}
|
||||
|
||||
public String getBelongUserName() {
|
||||
return belongUserName;
|
||||
}
|
||||
|
||||
public void setBelongUserName(String belongUserName) {
|
||||
this.belongUserName = belongUserName;
|
||||
}
|
||||
|
||||
public String getLpName() {
|
||||
return lpName;
|
||||
}
|
||||
|
||||
public void setLpName(String lpName) {
|
||||
this.lpName = lpName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
public String getCustCapital() {
|
||||
return custCapital;
|
||||
}
|
||||
|
||||
public void setCustCapital(String custCapital) {
|
||||
this.custCapital = custCapital;
|
||||
}
|
||||
|
||||
public String getLoanTag() {
|
||||
return loanTag;
|
||||
}
|
||||
|
||||
public void setLoanTag(String loanTag) {
|
||||
this.loanTag = loanTag;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public Long getUserDeptId() {
|
||||
return userDeptId;
|
||||
}
|
||||
|
||||
public void setUserDeptId(Long userDeptId) {
|
||||
this.userDeptId = userDeptId;
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
public void setDeptId(Long deptId) {
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public Long getOutletsId() {
|
||||
return outletsId;
|
||||
}
|
||||
|
||||
public void setOutletsId(Long outletsId) {
|
||||
this.outletsId = outletsId;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
private List<ContinuousParam> continuousParams; //连续型指标
|
||||
|
||||
private List<DiscreteParam> discreteParams; //离散型指标
|
||||
|
||||
private String perMetric;
|
||||
|
||||
public List<ContinuousParam> getContinuousParams() {
|
||||
return continuousParams;
|
||||
}
|
||||
|
||||
public void setContinuousParams(List<ContinuousParam> continuousParams) {
|
||||
this.continuousParams = continuousParams;
|
||||
}
|
||||
|
||||
public List<DiscreteParam> getDiscreteParams() {
|
||||
return discreteParams;
|
||||
}
|
||||
|
||||
public void setDiscreteParams(List<DiscreteParam> discreteParams) {
|
||||
this.discreteParams = discreteParams;
|
||||
}
|
||||
|
||||
public String getPerMetric() {
|
||||
return perMetric;
|
||||
}
|
||||
|
||||
public void setPerMetric(String perMetric) {
|
||||
this.perMetric = perMetric;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CustBaseInfo{" +
|
||||
"id=" + id +
|
||||
", custPattern='" + custPattern + '\'' +
|
||||
", custType='" + custType + '\'' +
|
||||
", custTag='" + custTag + '\'' +
|
||||
", custScale='" + custScale + '\'' +
|
||||
", custName='" + custName + '\'' +
|
||||
", belongBranchName='" + belongBranchName + '\'' +
|
||||
", belongOutletName='" + belongOutletName + '\'' +
|
||||
", manageUserName='" + manageUserName + '\'' +
|
||||
", belongUserName=" + belongUserName +
|
||||
", lpName='" + lpName + '\'' +
|
||||
", custPhone='" + custPhone + '\'' +
|
||||
", custCapital='" + custCapital + '\'' +
|
||||
", loanTag='" + loanTag + '\'' +
|
||||
", status='" + status + '\'' +
|
||||
", userDeptId=" + userDeptId +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/27
|
||||
**/
|
||||
@Data
|
||||
public class CustCsvTag {
|
||||
/** 主键 */
|
||||
@ApiModelProperty(value = "主键",notes = "")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id ;
|
||||
/** 机构号 */
|
||||
@ApiModelProperty(value = "机构号",notes = "")
|
||||
private String headId ;
|
||||
/** 客户号 */
|
||||
@ApiModelProperty(value = "证件号",notes = "")
|
||||
private String custIdc ;
|
||||
/** 文件id */
|
||||
@ApiModelProperty(value = "文件id",notes = "")
|
||||
private String fileId ;
|
||||
/** 更新日期 */
|
||||
@ApiModelProperty(value = "更新日期",notes = "")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime ;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
public class CustInfoDeleteFromAnchor {
|
||||
|
||||
/** 客户类型 */
|
||||
private String custType;
|
||||
|
||||
/** 客户号 */
|
||||
private String custId;
|
||||
|
||||
/** 客户证件类型 */
|
||||
private String custIdType;
|
||||
|
||||
/** 证件号 */
|
||||
private String legalId;
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public String getCustIdType() {
|
||||
return custIdType;
|
||||
}
|
||||
|
||||
public void setCustIdType(String custIdType) {
|
||||
this.custIdType = custIdType;
|
||||
}
|
||||
|
||||
public String getLegalId() {
|
||||
return legalId;
|
||||
}
|
||||
|
||||
public void setLegalId(String legalId) {
|
||||
this.legalId = legalId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 客户基本信息对象 custInfoUpdateFromAnchor
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-10-29
|
||||
*/
|
||||
|
||||
public class CustInfoUpdateFromAnchor {
|
||||
|
||||
/** 客户类型 */
|
||||
private String custType;
|
||||
|
||||
/** 客户id */
|
||||
private String custId;
|
||||
|
||||
/** 证件类型 */
|
||||
private String custIdType;
|
||||
|
||||
/** 锚点名称 */
|
||||
private String anchorName;
|
||||
|
||||
/** 所在行业 */
|
||||
private String belongBusiness;
|
||||
|
||||
/** 创建人 */
|
||||
private String updateBy;
|
||||
|
||||
/** 创建机构 */
|
||||
private String updateOrg;
|
||||
|
||||
/** 证件号 */
|
||||
private String legalId;
|
||||
|
||||
/** 客户内码 */
|
||||
private String custIsn;
|
||||
|
||||
/** 地址 */
|
||||
private String address;
|
||||
|
||||
/** 详细地址 */
|
||||
private String addressDetail;
|
||||
|
||||
/** 归属行政区划编码 */
|
||||
private String regionCode;
|
||||
|
||||
/** 创建时间 */
|
||||
private Date updateTime;
|
||||
|
||||
private String addressName;
|
||||
|
||||
|
||||
public String getAddressName() {
|
||||
return addressName;
|
||||
}
|
||||
|
||||
public void setAddressName(String addressName) {
|
||||
this.addressName = addressName;
|
||||
}
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public String getCustIdType() {
|
||||
return custIdType;
|
||||
}
|
||||
|
||||
public void setCustIdType(String custIdType) {
|
||||
this.custIdType = custIdType;
|
||||
}
|
||||
|
||||
public String getAnchorName() {
|
||||
return anchorName;
|
||||
}
|
||||
|
||||
public void setAnchorName(String anchorName) {
|
||||
this.anchorName = anchorName;
|
||||
}
|
||||
|
||||
public String getBelongBusiness() {
|
||||
return belongBusiness;
|
||||
}
|
||||
|
||||
public void setBelongBusiness(String belongBusiness) {
|
||||
this.belongBusiness = belongBusiness;
|
||||
}
|
||||
|
||||
public String getUpdateBy() {
|
||||
return updateBy;
|
||||
}
|
||||
|
||||
public void setUpdateBy(String updateBy) {
|
||||
this.updateBy = updateBy;
|
||||
}
|
||||
|
||||
public String getUpdateOrg() {
|
||||
return updateOrg;
|
||||
}
|
||||
|
||||
public void setUpdateOrg(String updateOrg) {
|
||||
this.updateOrg = updateOrg;
|
||||
}
|
||||
|
||||
public String getLegalId() {
|
||||
return legalId;
|
||||
}
|
||||
|
||||
public void setLegalId(String legalId) {
|
||||
this.legalId = legalId;
|
||||
}
|
||||
|
||||
public String getCustIsn() {
|
||||
return custIsn;
|
||||
}
|
||||
|
||||
public void setCustIsn(String custIsn) {
|
||||
this.custIsn = custIsn;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getAddressDetail() {
|
||||
return addressDetail;
|
||||
}
|
||||
|
||||
public void setAddressDetail(String addressDetail) {
|
||||
this.addressDetail = addressDetail;
|
||||
}
|
||||
|
||||
public String getRegionCode() {
|
||||
return regionCode;
|
||||
}
|
||||
|
||||
public void setRegionCode(String regionCode) {
|
||||
this.regionCode = regionCode;
|
||||
}
|
||||
|
||||
public Date getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(Date updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class CustListSearchVo extends BaseEntity {
|
||||
|
||||
private List<Map<String,Object>> continuousParams; //连续型
|
||||
|
||||
private List<Map<String,Object>> discreteParams; //离散型
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
public class DiscreteParam extends BaseEntity {
|
||||
private String key;
|
||||
|
||||
private String value;
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,696 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 网格汇总统计_公司对象 grid_cmpm_count_gongsi_965
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-22
|
||||
*/
|
||||
public class GridSummarCount extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 统计日期 */
|
||||
@Excel(name = "统计日期")
|
||||
private String dt;
|
||||
|
||||
/** 一级网格名称 */
|
||||
@Excel(name = "一级网格名称")
|
||||
private String gridName;
|
||||
|
||||
/** 二级网格名称 */
|
||||
@Excel(name = "二级网格名称")
|
||||
private String gridName2;
|
||||
|
||||
/** 镇/街道 */
|
||||
@Excel(name = "镇/街道")
|
||||
private String town;
|
||||
|
||||
/** 归属支行 */
|
||||
@Excel(name = "归属支行")
|
||||
private String deptId;
|
||||
|
||||
/** 归属网点 */
|
||||
@Excel(name = "归属网点")
|
||||
private String outletsId;
|
||||
|
||||
/** 归属客户经理 */
|
||||
@Excel(name = "归属客户经理")
|
||||
private String userName;
|
||||
|
||||
/** 入格客户数 */
|
||||
@Excel(name = "入格客户数")
|
||||
private Integer custNum;
|
||||
|
||||
/** 活期存款余额 */
|
||||
@Excel(name = "活期存款余额")
|
||||
private String hqCurBalance;
|
||||
|
||||
/** 保证金存款余额 */
|
||||
@Excel(name = "保证金存款余额")
|
||||
private String bzCurBalance;
|
||||
|
||||
/** 贷款余额 */
|
||||
@Excel(name = "贷款余额")
|
||||
private String loanBalanceCny;
|
||||
|
||||
/** 贴现余额 */
|
||||
@Excel(name = "贴现余额")
|
||||
private String financeProd711Balance;
|
||||
|
||||
/** 承兑汇票余额 */
|
||||
@Excel(name = "承兑汇票余额")
|
||||
private String financeProd716Balance;
|
||||
|
||||
/** 贷款年日均 */
|
||||
@Excel(name = "贷款年日均")
|
||||
private String loanYearDailyaverage;
|
||||
|
||||
/** 普惠签约率 */
|
||||
@Excel(name = "普惠签约率")
|
||||
private String phRat;
|
||||
|
||||
/** 签发承兑汇票率 */
|
||||
@Excel(name = "签发承兑汇票率")
|
||||
private String qfcdRat;
|
||||
|
||||
/** 贴现业务率 */
|
||||
@Excel(name = "贴现业务率")
|
||||
private String txRat;
|
||||
|
||||
/** 保函业务率 */
|
||||
@Excel(name = "保函业务率")
|
||||
private String bhRat;
|
||||
|
||||
/** 有效代发工资率 */
|
||||
@Excel(name = "有效代发工资率")
|
||||
private String yxdfgzRat;
|
||||
|
||||
/** 代扣电费率 */
|
||||
@Excel(name = "代扣电费率")
|
||||
private String dkdfRat;
|
||||
|
||||
/** 代扣水费率 */
|
||||
@Excel(name = "代扣水费率")
|
||||
private String dksfRat;
|
||||
|
||||
/** 代扣税费率 */
|
||||
@Excel(name = "代扣税费率")
|
||||
private String dkshfRat;
|
||||
|
||||
/** 票据宝签约率 */
|
||||
@Excel(name = "票据宝签约率")
|
||||
private String pjbRat;
|
||||
|
||||
/** 财资宝签约率 */
|
||||
@Excel(name = "财资宝签约率")
|
||||
private String czbRat;
|
||||
|
||||
/** 收付宝签约率 */
|
||||
@Excel(name = "收付宝签约率")
|
||||
private String sfbRat;
|
||||
|
||||
/** 贸融宝签约率 */
|
||||
@Excel(name = "贸融宝签约率")
|
||||
private String mrbRat;
|
||||
|
||||
/** 数字生态产品签约率 */
|
||||
@Excel(name = "数字生态产品签约率")
|
||||
private String szstRat;
|
||||
|
||||
/** 开户率 */
|
||||
@Excel(name = "开户率")
|
||||
private String khRat;
|
||||
|
||||
/** 国际结算业务率 */
|
||||
@Excel(name = "国际结算业务率")
|
||||
private String gjjsywRat;
|
||||
|
||||
/** 远期结算汇业务率 */
|
||||
@Excel(name = "远期结算汇业务率")
|
||||
private String yqjshRat;
|
||||
|
||||
/** 普惠签约数 */
|
||||
@Excel(name = "普惠签约数")
|
||||
private Integer phNum;
|
||||
|
||||
/** 签发承兑汇票数 */
|
||||
@Excel(name = "签发承兑汇票数")
|
||||
private Integer qfcdNum;
|
||||
|
||||
/** 贴现业务数 */
|
||||
@Excel(name = "贴现业务数")
|
||||
private Integer txNum;
|
||||
|
||||
/** 保函业务数 */
|
||||
@Excel(name = "保函业务数")
|
||||
private Integer bhNum;
|
||||
|
||||
/** 有效代发工资数 */
|
||||
@Excel(name = "有效代发工资数")
|
||||
private Integer yxdfgzNum;
|
||||
|
||||
/** 代扣电费数 */
|
||||
@Excel(name = "代扣电费数")
|
||||
private Integer dkdfNum;
|
||||
|
||||
/** 代扣水费数 */
|
||||
@Excel(name = "代扣水费数")
|
||||
private Integer dksfNum;
|
||||
|
||||
/** 代扣税费数 */
|
||||
@Excel(name = "代扣税费数")
|
||||
private Integer dkshfNum;
|
||||
|
||||
/** 票据宝签约数 */
|
||||
@Excel(name = "票据宝签约数")
|
||||
private Integer pjbNum;
|
||||
|
||||
/** 财资宝签约数 */
|
||||
@Excel(name = "财资宝签约数")
|
||||
private Integer czbNum;
|
||||
|
||||
/** 收付宝签约数 */
|
||||
@Excel(name = "收付宝签约数")
|
||||
private Integer sfbNum;
|
||||
|
||||
/** 贸融宝签约数 */
|
||||
@Excel(name = "贸融宝签约数")
|
||||
private Integer mrbNum;
|
||||
|
||||
/** 数字生态产品签约数 */
|
||||
@Excel(name = "数字生态产品签约数")
|
||||
private Integer szstNum;
|
||||
|
||||
/** 开户数 */
|
||||
@Excel(name = "开户数")
|
||||
private Integer khNum;
|
||||
|
||||
/** 国际结算业务数 */
|
||||
@Excel(name = "国际结算业务数")
|
||||
private Integer gjjsywNum;
|
||||
|
||||
/** 远期结算汇业务数 */
|
||||
@Excel(name = "远期结算汇业务数")
|
||||
private Integer yqjshNum;
|
||||
|
||||
/** 归属行政区划编码 */
|
||||
@Excel(name = "归属行政区划编码")
|
||||
private String regionCode;
|
||||
|
||||
/** 部室归属 0零售 1公司 2运管 */
|
||||
@Excel(name = "部室归属 0零售 1公司 2运管")
|
||||
private String opsDept;
|
||||
|
||||
public void setDt(String dt)
|
||||
{
|
||||
this.dt = dt;
|
||||
}
|
||||
|
||||
public String getDt()
|
||||
{
|
||||
return dt;
|
||||
}
|
||||
public void setGridName(String gridName)
|
||||
{
|
||||
this.gridName = gridName;
|
||||
}
|
||||
|
||||
public String getGridName()
|
||||
{
|
||||
return gridName;
|
||||
}
|
||||
public void setGridName2(String gridName2)
|
||||
{
|
||||
this.gridName2 = gridName2;
|
||||
}
|
||||
|
||||
public String getGridName2()
|
||||
{
|
||||
return gridName2;
|
||||
}
|
||||
public void setTown(String town)
|
||||
{
|
||||
this.town = town;
|
||||
}
|
||||
|
||||
public String getTown()
|
||||
{
|
||||
return town;
|
||||
}
|
||||
public void setDeptId(String deptId)
|
||||
{
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public String getDeptId()
|
||||
{
|
||||
return deptId;
|
||||
}
|
||||
public void setOutletsId(String outletsId)
|
||||
{
|
||||
this.outletsId = outletsId;
|
||||
}
|
||||
|
||||
public String getOutletsId()
|
||||
{
|
||||
return outletsId;
|
||||
}
|
||||
public void setUserName(String userName)
|
||||
{
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getUserName()
|
||||
{
|
||||
return userName;
|
||||
}
|
||||
public void setCustNum(Integer custNum)
|
||||
{
|
||||
this.custNum = custNum;
|
||||
}
|
||||
|
||||
public Integer getCustNum()
|
||||
{
|
||||
return custNum;
|
||||
}
|
||||
public void setHqCurBalance(String hqCurBalance)
|
||||
{
|
||||
this.hqCurBalance = hqCurBalance;
|
||||
}
|
||||
|
||||
public String getHqCurBalance()
|
||||
{
|
||||
return hqCurBalance;
|
||||
}
|
||||
public void setBzCurBalance(String bzCurBalance)
|
||||
{
|
||||
this.bzCurBalance = bzCurBalance;
|
||||
}
|
||||
|
||||
public String getBzCurBalance()
|
||||
{
|
||||
return bzCurBalance;
|
||||
}
|
||||
public void setLoanBalanceCny(String loanBalanceCny)
|
||||
{
|
||||
this.loanBalanceCny = loanBalanceCny;
|
||||
}
|
||||
|
||||
public String getLoanBalanceCny()
|
||||
{
|
||||
return loanBalanceCny;
|
||||
}
|
||||
public void setFinanceProd711Balance(String financeProd711Balance)
|
||||
{
|
||||
this.financeProd711Balance = financeProd711Balance;
|
||||
}
|
||||
|
||||
public String getFinanceProd711Balance()
|
||||
{
|
||||
return financeProd711Balance;
|
||||
}
|
||||
public void setFinanceProd716Balance(String financeProd716Balance)
|
||||
{
|
||||
this.financeProd716Balance = financeProd716Balance;
|
||||
}
|
||||
|
||||
public String getFinanceProd716Balance()
|
||||
{
|
||||
return financeProd716Balance;
|
||||
}
|
||||
public void setLoanYearDailyaverage(String loanYearDailyaverage)
|
||||
{
|
||||
this.loanYearDailyaverage = loanYearDailyaverage;
|
||||
}
|
||||
|
||||
public String getLoanYearDailyaverage()
|
||||
{
|
||||
return loanYearDailyaverage;
|
||||
}
|
||||
public void setPhRat(String phRat)
|
||||
{
|
||||
this.phRat = phRat;
|
||||
}
|
||||
|
||||
public String getPhRat()
|
||||
{
|
||||
return phRat;
|
||||
}
|
||||
public void setQfcdRat(String qfcdRat)
|
||||
{
|
||||
this.qfcdRat = qfcdRat;
|
||||
}
|
||||
|
||||
public String getQfcdRat()
|
||||
{
|
||||
return qfcdRat;
|
||||
}
|
||||
public void setTxRat(String txRat)
|
||||
{
|
||||
this.txRat = txRat;
|
||||
}
|
||||
|
||||
public String getTxRat()
|
||||
{
|
||||
return txRat;
|
||||
}
|
||||
public void setBhRat(String bhRat)
|
||||
{
|
||||
this.bhRat = bhRat;
|
||||
}
|
||||
|
||||
public String getBhRat()
|
||||
{
|
||||
return bhRat;
|
||||
}
|
||||
public void setYxdfgzRat(String yxdfgzRat)
|
||||
{
|
||||
this.yxdfgzRat = yxdfgzRat;
|
||||
}
|
||||
|
||||
public String getYxdfgzRat()
|
||||
{
|
||||
return yxdfgzRat;
|
||||
}
|
||||
public void setDkdfRat(String dkdfRat)
|
||||
{
|
||||
this.dkdfRat = dkdfRat;
|
||||
}
|
||||
|
||||
public String getDkdfRat()
|
||||
{
|
||||
return dkdfRat;
|
||||
}
|
||||
public void setDksfRat(String dksfRat)
|
||||
{
|
||||
this.dksfRat = dksfRat;
|
||||
}
|
||||
|
||||
public String getDksfRat()
|
||||
{
|
||||
return dksfRat;
|
||||
}
|
||||
public void setDkshfRat(String dkshfRat)
|
||||
{
|
||||
this.dkshfRat = dkshfRat;
|
||||
}
|
||||
|
||||
public String getDkshfRat()
|
||||
{
|
||||
return dkshfRat;
|
||||
}
|
||||
public void setPjbRat(String pjbRat)
|
||||
{
|
||||
this.pjbRat = pjbRat;
|
||||
}
|
||||
|
||||
public String getPjbRat()
|
||||
{
|
||||
return pjbRat;
|
||||
}
|
||||
public void setCzbRat(String czbRat)
|
||||
{
|
||||
this.czbRat = czbRat;
|
||||
}
|
||||
|
||||
public String getCzbRat()
|
||||
{
|
||||
return czbRat;
|
||||
}
|
||||
public void setSfbRat(String sfbRat)
|
||||
{
|
||||
this.sfbRat = sfbRat;
|
||||
}
|
||||
|
||||
public String getSfbRat()
|
||||
{
|
||||
return sfbRat;
|
||||
}
|
||||
public void setMrbRat(String mrbRat)
|
||||
{
|
||||
this.mrbRat = mrbRat;
|
||||
}
|
||||
|
||||
public String getMrbRat()
|
||||
{
|
||||
return mrbRat;
|
||||
}
|
||||
public void setSzstRat(String szstRat)
|
||||
{
|
||||
this.szstRat = szstRat;
|
||||
}
|
||||
|
||||
public String getSzstRat()
|
||||
{
|
||||
return szstRat;
|
||||
}
|
||||
public void setKhRat(String khRat)
|
||||
{
|
||||
this.khRat = khRat;
|
||||
}
|
||||
|
||||
public String getKhRat()
|
||||
{
|
||||
return khRat;
|
||||
}
|
||||
public void setGjjsywRat(String gjjsywRat)
|
||||
{
|
||||
this.gjjsywRat = gjjsywRat;
|
||||
}
|
||||
|
||||
public String getGjjsywRat()
|
||||
{
|
||||
return gjjsywRat;
|
||||
}
|
||||
public void setYqjshRat(String yqjshRat)
|
||||
{
|
||||
this.yqjshRat = yqjshRat;
|
||||
}
|
||||
|
||||
public String getYqjshRat()
|
||||
{
|
||||
return yqjshRat;
|
||||
}
|
||||
public void setPhNum(Integer phNum)
|
||||
{
|
||||
this.phNum = phNum;
|
||||
}
|
||||
|
||||
public Integer getPhNum()
|
||||
{
|
||||
return phNum;
|
||||
}
|
||||
public void setQfcdNum(Integer qfcdNum)
|
||||
{
|
||||
this.qfcdNum = qfcdNum;
|
||||
}
|
||||
|
||||
public Integer getQfcdNum()
|
||||
{
|
||||
return qfcdNum;
|
||||
}
|
||||
public void setTxNum(Integer txNum)
|
||||
{
|
||||
this.txNum = txNum;
|
||||
}
|
||||
|
||||
public Integer getTxNum()
|
||||
{
|
||||
return txNum;
|
||||
}
|
||||
public void setBhNum(Integer bhNum)
|
||||
{
|
||||
this.bhNum = bhNum;
|
||||
}
|
||||
|
||||
public Integer getBhNum()
|
||||
{
|
||||
return bhNum;
|
||||
}
|
||||
public void setYxdfgzNum(Integer yxdfgzNum)
|
||||
{
|
||||
this.yxdfgzNum = yxdfgzNum;
|
||||
}
|
||||
|
||||
public Integer getYxdfgzNum()
|
||||
{
|
||||
return yxdfgzNum;
|
||||
}
|
||||
public void setDkdfNum(Integer dkdfNum)
|
||||
{
|
||||
this.dkdfNum = dkdfNum;
|
||||
}
|
||||
|
||||
public Integer getDkdfNum()
|
||||
{
|
||||
return dkdfNum;
|
||||
}
|
||||
public void setDksfNum(Integer dksfNum)
|
||||
{
|
||||
this.dksfNum = dksfNum;
|
||||
}
|
||||
|
||||
public Integer getDksfNum()
|
||||
{
|
||||
return dksfNum;
|
||||
}
|
||||
public void setDkshfNum(Integer dkshfNum)
|
||||
{
|
||||
this.dkshfNum = dkshfNum;
|
||||
}
|
||||
|
||||
public Integer getDkshfNum()
|
||||
{
|
||||
return dkshfNum;
|
||||
}
|
||||
public void setPjbNum(Integer pjbNum)
|
||||
{
|
||||
this.pjbNum = pjbNum;
|
||||
}
|
||||
|
||||
public Integer getPjbNum()
|
||||
{
|
||||
return pjbNum;
|
||||
}
|
||||
public void setCzbNum(Integer czbNum)
|
||||
{
|
||||
this.czbNum = czbNum;
|
||||
}
|
||||
|
||||
public Integer getCzbNum()
|
||||
{
|
||||
return czbNum;
|
||||
}
|
||||
public void setSfbNum(Integer sfbNum)
|
||||
{
|
||||
this.sfbNum = sfbNum;
|
||||
}
|
||||
|
||||
public Integer getSfbNum()
|
||||
{
|
||||
return sfbNum;
|
||||
}
|
||||
public void setMrbNum(Integer mrbNum)
|
||||
{
|
||||
this.mrbNum = mrbNum;
|
||||
}
|
||||
|
||||
public Integer getMrbNum()
|
||||
{
|
||||
return mrbNum;
|
||||
}
|
||||
public void setSzstNum(Integer szstNum)
|
||||
{
|
||||
this.szstNum = szstNum;
|
||||
}
|
||||
|
||||
public Integer getSzstNum()
|
||||
{
|
||||
return szstNum;
|
||||
}
|
||||
public void setKhNum(Integer khNum)
|
||||
{
|
||||
this.khNum = khNum;
|
||||
}
|
||||
|
||||
public Integer getKhNum()
|
||||
{
|
||||
return khNum;
|
||||
}
|
||||
public void setGjjsywNum(Integer gjjsywNum)
|
||||
{
|
||||
this.gjjsywNum = gjjsywNum;
|
||||
}
|
||||
|
||||
public Integer getGjjsywNum()
|
||||
{
|
||||
return gjjsywNum;
|
||||
}
|
||||
public void setYqjshNum(Integer yqjshNum)
|
||||
{
|
||||
this.yqjshNum = yqjshNum;
|
||||
}
|
||||
|
||||
public Integer getYqjshNum()
|
||||
{
|
||||
return yqjshNum;
|
||||
}
|
||||
public void setRegionCode(String regionCode)
|
||||
{
|
||||
this.regionCode = regionCode;
|
||||
}
|
||||
|
||||
public String getRegionCode()
|
||||
{
|
||||
return regionCode;
|
||||
}
|
||||
public void setOpsDept(String opsDept)
|
||||
{
|
||||
this.opsDept = opsDept;
|
||||
}
|
||||
|
||||
public String getOpsDept()
|
||||
{
|
||||
return opsDept;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("dt", getDt())
|
||||
.append("gridName", getGridName())
|
||||
.append("gridName2", getGridName2())
|
||||
.append("town", getTown())
|
||||
.append("deptId", getDeptId())
|
||||
.append("outletsId", getOutletsId())
|
||||
.append("userName", getUserName())
|
||||
.append("custNum", getCustNum())
|
||||
.append("hqCurBalance", getHqCurBalance())
|
||||
.append("bzCurBalance", getBzCurBalance())
|
||||
.append("loanBalanceCny", getLoanBalanceCny())
|
||||
.append("financeProd711Balance", getFinanceProd711Balance())
|
||||
.append("financeProd716Balance", getFinanceProd716Balance())
|
||||
.append("loanYearDailyaverage", getLoanYearDailyaverage())
|
||||
.append("phRat", getPhRat())
|
||||
.append("qfcdRat", getQfcdRat())
|
||||
.append("txRat", getTxRat())
|
||||
.append("bhRat", getBhRat())
|
||||
.append("yxdfgzRat", getYxdfgzRat())
|
||||
.append("dkdfRat", getDkdfRat())
|
||||
.append("dksfRat", getDksfRat())
|
||||
.append("dkshfRat", getDkshfRat())
|
||||
.append("pjbRat", getPjbRat())
|
||||
.append("czbRat", getCzbRat())
|
||||
.append("sfbRat", getSfbRat())
|
||||
.append("mrbRat", getMrbRat())
|
||||
.append("szstRat", getSzstRat())
|
||||
.append("khRat", getKhRat())
|
||||
.append("gjjsywRat", getGjjsywRat())
|
||||
.append("yqjshRat", getYqjshRat())
|
||||
.append("phNum", getPhNum())
|
||||
.append("qfcdNum", getQfcdNum())
|
||||
.append("txNum", getTxNum())
|
||||
.append("bhNum", getBhNum())
|
||||
.append("yxdfgzNum", getYxdfgzNum())
|
||||
.append("dkdfNum", getDkdfNum())
|
||||
.append("dksfNum", getDksfNum())
|
||||
.append("dkshfNum", getDkshfNum())
|
||||
.append("pjbNum", getPjbNum())
|
||||
.append("czbNum", getCzbNum())
|
||||
.append("sfbNum", getSfbNum())
|
||||
.append("mrbNum", getMrbNum())
|
||||
.append("szstNum", getSzstNum())
|
||||
.append("khNum", getKhNum())
|
||||
.append("gjjsywNum", getGjjsywNum())
|
||||
.append("yqjshNum", getYqjshNum())
|
||||
.append("regionCode", getRegionCode())
|
||||
.append("opsDept", getOpsDept())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
public class GroupListVo {
|
||||
|
||||
/** 清单ID */
|
||||
private String groupId;
|
||||
|
||||
/** 清单名称 */
|
||||
private String groupName;
|
||||
|
||||
/** 清单类型 */
|
||||
private String groupType;
|
||||
|
||||
/** 创建机构 */
|
||||
private String createRole;
|
||||
|
||||
public String getGroupId() {
|
||||
return groupId;
|
||||
}
|
||||
|
||||
public void setGroupId(String groupId) {
|
||||
this.groupId = groupId;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public String getGroupType() {
|
||||
return groupType;
|
||||
}
|
||||
|
||||
public void setGroupType(String groupType) {
|
||||
this.groupType = groupType;
|
||||
}
|
||||
|
||||
public String getCreateRole() {
|
||||
return createRole;
|
||||
}
|
||||
|
||||
public void setCreateRole(String createRole) {
|
||||
this.createRole = createRole;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "GroupListVo{" +
|
||||
"groupId='" + groupId + '\'' +
|
||||
", groupName='" + groupName + '\'' +
|
||||
", groupType='" + groupType + '\'' +
|
||||
", createRole='" + createRole + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,350 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 清单列表查询信息 ListSelectByUser
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-09-25
|
||||
*/
|
||||
public class ListSelectByUser {
|
||||
|
||||
/** 客户标签 */
|
||||
@NotNull(message = "客户标签不能为空")
|
||||
private String custPattern;
|
||||
|
||||
/** 用户机构 */
|
||||
private Long userDept;
|
||||
|
||||
/** 用户id */
|
||||
private Long userId;
|
||||
|
||||
/** 清单来源 */
|
||||
private String createRole;
|
||||
|
||||
/** 清单类型 */
|
||||
private String groupType;
|
||||
|
||||
/** 客户类型 */
|
||||
private String custType;
|
||||
|
||||
/** 清单ID */
|
||||
private String groupId;
|
||||
|
||||
/** 清单名称 */
|
||||
private String groupName;
|
||||
|
||||
/** 客户数 */
|
||||
private Long customerNum;
|
||||
|
||||
/** 关联活动id */
|
||||
private String campaignId;
|
||||
|
||||
/** 关联活动名称 */
|
||||
private String campaignName;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date endTime;
|
||||
|
||||
/** 活动状态 */
|
||||
private String actionStatus;
|
||||
|
||||
/** 紧急程度 */
|
||||
private String campaignDegree;
|
||||
|
||||
/** 分配机构id */
|
||||
private Long deptId;
|
||||
|
||||
/** 分配机构 */
|
||||
private String belongDept;
|
||||
|
||||
private String belongOutlet;
|
||||
|
||||
/** 分配结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date claimEndTime;
|
||||
|
||||
/** 认领类型 */
|
||||
private String claimType;
|
||||
|
||||
/** 机构领取状态 */
|
||||
private String orgClaimStatus;
|
||||
|
||||
/** 机构分配状态 */
|
||||
private String orgDistributeStatus;
|
||||
|
||||
/** 客户经理认领率 */
|
||||
private String receiveSitustion = "0%";
|
||||
|
||||
/** 是否二次推送 */
|
||||
private String secondPushStatus;
|
||||
|
||||
/** 执行人 0-机构;1-个人;2-混合分配 */
|
||||
private String executer;
|
||||
|
||||
/** 更新时间 */
|
||||
private Date updateTime;
|
||||
|
||||
/** 创建时间 */
|
||||
private Date createTime;
|
||||
|
||||
/** 当前时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date nowTime;
|
||||
|
||||
@Excel(name = "考核目标")
|
||||
private String checkTarget;
|
||||
|
||||
@Excel(name = "下发支行")
|
||||
private String sendDept;
|
||||
|
||||
public String getSendDept() {
|
||||
return sendDept;
|
||||
}
|
||||
|
||||
public void setSendDept(String sendDept) {
|
||||
this.sendDept = sendDept;
|
||||
}
|
||||
|
||||
public String getCustPattern() {
|
||||
return custPattern;
|
||||
}
|
||||
|
||||
public void setCustPattern(String custPattern) {
|
||||
this.custPattern = custPattern;
|
||||
}
|
||||
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public Long getUserDept() {
|
||||
return userDept;
|
||||
}
|
||||
|
||||
public void setUserDept(Long userDept) {
|
||||
this.userDept = userDept;
|
||||
}
|
||||
|
||||
public String getCreateRole() {
|
||||
return createRole;
|
||||
}
|
||||
|
||||
public void setCreateRole(String createRole) {
|
||||
this.createRole = createRole;
|
||||
}
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getGroupType() {
|
||||
return groupType;
|
||||
}
|
||||
|
||||
public void setGroupType(String groupType) {
|
||||
this.groupType = groupType;
|
||||
}
|
||||
|
||||
public String getGroupId() {
|
||||
return groupId;
|
||||
}
|
||||
|
||||
public void setGroupId(String groupId) {
|
||||
this.groupId = groupId;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public Long getCustomerNum() {
|
||||
return customerNum;
|
||||
}
|
||||
|
||||
public void setCustomerNum(Long customerNum) {
|
||||
this.customerNum = customerNum;
|
||||
}
|
||||
|
||||
public String getCampaignId() {
|
||||
return campaignId;
|
||||
}
|
||||
|
||||
public void setCampaignId(String campaignId) {
|
||||
this.campaignId = campaignId;
|
||||
}
|
||||
|
||||
public String getCampaignName() {
|
||||
return campaignName;
|
||||
}
|
||||
|
||||
public void setCampaignName(String campaignName) {
|
||||
this.campaignName = campaignName;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getActionStatus() {
|
||||
return actionStatus;
|
||||
}
|
||||
|
||||
public void setActionStatus(String actionStatus) {
|
||||
this.actionStatus = actionStatus;
|
||||
}
|
||||
|
||||
public String getCampaignDegree() {
|
||||
return campaignDegree;
|
||||
}
|
||||
|
||||
public void setCampaignDegree(String campaignDegree) {
|
||||
this.campaignDegree = campaignDegree;
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
public void setDeptId(Long deptId) {
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public String getBelongDept() {
|
||||
return belongDept;
|
||||
}
|
||||
|
||||
public void setBelongDept(String belongDept) {
|
||||
this.belongDept = belongDept;
|
||||
}
|
||||
|
||||
public Date getClaimEndTime() {
|
||||
return claimEndTime;
|
||||
}
|
||||
|
||||
public void setClaimEndTime(Date claimEndTime) {
|
||||
this.claimEndTime = claimEndTime;
|
||||
}
|
||||
|
||||
public String getClaimType() {
|
||||
return claimType;
|
||||
}
|
||||
|
||||
public void setClaimType(String claimType) {
|
||||
this.claimType = claimType;
|
||||
}
|
||||
|
||||
public String getOrgClaimStatus() {
|
||||
return orgClaimStatus;
|
||||
}
|
||||
|
||||
public void setOrgClaimStatus(String orgClaimStatus) {
|
||||
this.orgClaimStatus = orgClaimStatus;
|
||||
}
|
||||
|
||||
public String getOrgDistributeStatus() {
|
||||
return orgDistributeStatus;
|
||||
}
|
||||
|
||||
public void setOrgDistributeStatus(String orgDistributeStatus) {
|
||||
this.orgDistributeStatus = orgDistributeStatus;
|
||||
}
|
||||
|
||||
public String getReceiveSitustion() {
|
||||
return receiveSitustion;
|
||||
}
|
||||
|
||||
public void setReceiveSitustion(String receiveSitustion) {
|
||||
this.receiveSitustion = receiveSitustion;
|
||||
}
|
||||
|
||||
public Date getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(Date updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
|
||||
public Date getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(Date createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public String getSecondPushStatus() {
|
||||
return secondPushStatus;
|
||||
}
|
||||
|
||||
public void setSecondPushStatus(String secondPushStatus) {
|
||||
this.secondPushStatus = secondPushStatus;
|
||||
}
|
||||
|
||||
public String getExecuter() {
|
||||
return executer;
|
||||
}
|
||||
|
||||
public void setExecuter(String executer) {
|
||||
this.executer = executer;
|
||||
}
|
||||
|
||||
public Date getNowTime() {
|
||||
return nowTime;
|
||||
}
|
||||
|
||||
public void setNowTime(Date nowTime) {
|
||||
this.nowTime = nowTime;
|
||||
}
|
||||
|
||||
public String getCheckTarget() {
|
||||
return checkTarget;
|
||||
}
|
||||
|
||||
public void setCheckTarget(String checkTarget) {
|
||||
this.checkTarget = checkTarget;
|
||||
}
|
||||
|
||||
public String getBelongOutlet() {
|
||||
return belongOutlet;
|
||||
}
|
||||
|
||||
public void setBelongOutlet(String belongOutlet) {
|
||||
this.belongOutlet = belongOutlet;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,368 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
public class ListSelectForUser {
|
||||
|
||||
/** 客户标签 */
|
||||
@Excel(name = "客户类型:0-个人;1-商户;2-企业")
|
||||
@NotNull(message = "客户标签不能为空")
|
||||
private String custPattern;
|
||||
|
||||
/** 用户机构 */
|
||||
private Long userDept;
|
||||
|
||||
/** 用户id */
|
||||
private Long userId;
|
||||
|
||||
/** 清单来源 */
|
||||
@Excel(name = "清单来源 0-总行;1-支行")
|
||||
private String createRole;
|
||||
|
||||
/** 清单ID */
|
||||
@Excel(name = "清单ID")
|
||||
private String groupId;
|
||||
|
||||
/** 清单名称 */
|
||||
@Excel(name = "清单名称")
|
||||
private String groupName;
|
||||
|
||||
/** 关联活动id */
|
||||
@Excel(name = "关联活动id")
|
||||
private String campaignId;
|
||||
|
||||
/** 关联活动名称 */
|
||||
@Excel(name = "关联活动名称")
|
||||
private String campaignName;
|
||||
|
||||
/** 客户号 */
|
||||
@Excel(name = "客户号")
|
||||
private String custId;
|
||||
|
||||
/** 客户名 */
|
||||
@Excel(name = "客户名")
|
||||
private String custName;
|
||||
|
||||
/** 经营者名称 */
|
||||
@Excel(name = "经营者名称(用于商户或企业客户)")
|
||||
private String lpName;
|
||||
|
||||
/** 客户手机号 */
|
||||
@Excel(name = "客户手机号")
|
||||
private String custPhone;
|
||||
|
||||
/** 客户证件号 */
|
||||
@Excel(name = "客户证件号(用于个人客户)")
|
||||
private String custIdc;
|
||||
|
||||
/** 社会统一编码 */
|
||||
@Excel(name = "社会统一编码(用于商户或企业客户)")
|
||||
private String socialCreditCode;
|
||||
|
||||
/** 客户内码 */
|
||||
@Excel(name = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endTime;
|
||||
|
||||
/** 紧急程度 */
|
||||
@Excel(name = "紧急程度")
|
||||
private String campaignDegree;
|
||||
|
||||
/** 分配机构id */
|
||||
@Excel(name = "分配机构id")
|
||||
private Long deptId;
|
||||
|
||||
/** 分配机构名称 */
|
||||
@Excel(name = "分配机构名称")
|
||||
private String belongDept;
|
||||
|
||||
/** 认领类型 */
|
||||
@Excel(name = "认领类型 0-强制认领;1-可选认领")
|
||||
private String claimType;
|
||||
|
||||
/** 机构领取状态 */
|
||||
@Excel(name = "机构领取状态 0-待认领;1-已认领")
|
||||
private String orgClaimStatus;
|
||||
|
||||
/** 机构分配状态 */
|
||||
@Excel(name = "机构分配状态 0-待分配;1-已分配")
|
||||
private String orgDistributeStatus;
|
||||
|
||||
/** 客户经理分配状态 */
|
||||
@Excel(name = "客户经理分配状态 0-待分配;1-已分配")
|
||||
private String custClaimStatus;
|
||||
|
||||
/** 所属一级网格(导出) */
|
||||
@Excel(name = "所属一级网格")
|
||||
private String topGridName;
|
||||
|
||||
/** 所属二级网格(导出) */
|
||||
@Excel(name = "所属二级网格")
|
||||
private String secGridName;
|
||||
|
||||
/** 所属客户经理(导出) */
|
||||
@Excel(name = "所属客户经理")
|
||||
private String userName;
|
||||
|
||||
/** 所属网点(导出) */
|
||||
@Excel(name = "所属网点")
|
||||
private String outlets;
|
||||
@Excel(name = "考核目标")
|
||||
private String checkTarget;
|
||||
//是否是网点查询,0-否,1-是
|
||||
private String isOutlet;
|
||||
|
||||
public String getIsOutlet() {
|
||||
return isOutlet;
|
||||
}
|
||||
|
||||
public void setIsOutlet(String isOutlet) {
|
||||
this.isOutlet = isOutlet;
|
||||
}
|
||||
|
||||
public String getCustPattern() {
|
||||
return custPattern;
|
||||
}
|
||||
|
||||
public void setCustPattern(String custPattern) {
|
||||
this.custPattern = custPattern;
|
||||
}
|
||||
|
||||
public Long getUserDept() {
|
||||
return userDept;
|
||||
}
|
||||
|
||||
public void setUserDept(Long userDept) {
|
||||
this.userDept = userDept;
|
||||
}
|
||||
|
||||
public Long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getCreateRole() {
|
||||
return createRole;
|
||||
}
|
||||
|
||||
public void setCreateRole(String createRole) {
|
||||
this.createRole = createRole;
|
||||
}
|
||||
|
||||
public String getGroupId() {
|
||||
return groupId;
|
||||
}
|
||||
|
||||
public void setGroupId(String groupId) {
|
||||
this.groupId = groupId;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public String getCampaignId() {
|
||||
return campaignId;
|
||||
}
|
||||
|
||||
public void setCampaignId(String campaignId) {
|
||||
this.campaignId = campaignId;
|
||||
}
|
||||
|
||||
public String getCampaignName() {
|
||||
return campaignName;
|
||||
}
|
||||
|
||||
public void setCampaignName(String campaignName) {
|
||||
this.campaignName = campaignName;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getLpName() {
|
||||
return lpName;
|
||||
}
|
||||
|
||||
public void setLpName(String lpName) {
|
||||
this.lpName = lpName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
public String getCustIdc() {
|
||||
return custIdc;
|
||||
}
|
||||
|
||||
public void setCustIdc(String custIdc) {
|
||||
this.custIdc = custIdc;
|
||||
}
|
||||
|
||||
public String getSocialCreditCode() {
|
||||
return socialCreditCode;
|
||||
}
|
||||
|
||||
public void setSocialCreditCode(String socialCreditCode) {
|
||||
this.socialCreditCode = socialCreditCode;
|
||||
}
|
||||
|
||||
public String getCustIsn() {
|
||||
return custIsn;
|
||||
}
|
||||
|
||||
public void setCustIsn(String custIsn) {
|
||||
this.custIsn = custIsn;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getCampaignDegree() {
|
||||
return campaignDegree;
|
||||
}
|
||||
|
||||
public void setCampaignDegree(String campaignDegree) {
|
||||
this.campaignDegree = campaignDegree;
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
public void setDeptId(Long deptId) {
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public String getBelongDept() {
|
||||
return belongDept;
|
||||
}
|
||||
|
||||
public void setBelongDept(String belongDept) {
|
||||
this.belongDept = belongDept;
|
||||
}
|
||||
|
||||
public String getClaimType() {
|
||||
return claimType;
|
||||
}
|
||||
|
||||
public void setClaimType(String claimType) {
|
||||
this.claimType = claimType;
|
||||
}
|
||||
|
||||
public String getOrgClaimStatus() {
|
||||
return orgClaimStatus;
|
||||
}
|
||||
|
||||
public void setOrgClaimStatus(String orgClaimStatus) {
|
||||
this.orgClaimStatus = orgClaimStatus;
|
||||
}
|
||||
|
||||
public String getOrgDistributeStatus() {
|
||||
return orgDistributeStatus;
|
||||
}
|
||||
|
||||
public void setOrgDistributeStatus(String orgDistributeStatus) {
|
||||
this.orgDistributeStatus = orgDistributeStatus;
|
||||
}
|
||||
|
||||
public String getCustClaimStatus() {
|
||||
return custClaimStatus;
|
||||
}
|
||||
|
||||
public void setCustClaimStatus(String custClaimStatus) {
|
||||
this.custClaimStatus = custClaimStatus;
|
||||
}
|
||||
|
||||
public String getTopGridName() {
|
||||
return topGridName;
|
||||
}
|
||||
|
||||
public void setTopGridName(String topGridName) {
|
||||
this.topGridName = topGridName;
|
||||
}
|
||||
|
||||
public String getSecGridName() {
|
||||
return secGridName;
|
||||
}
|
||||
|
||||
public void setSecGridName(String secGridName) {
|
||||
this.secGridName = secGridName;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getOutlets() {
|
||||
return outlets;
|
||||
}
|
||||
|
||||
public void setOutlets(String outlets) {
|
||||
this.outlets = outlets;
|
||||
}
|
||||
|
||||
public String getCheckTarget() {
|
||||
return checkTarget;
|
||||
}
|
||||
|
||||
public void setCheckTarget(String checkTarget) {
|
||||
this.checkTarget = checkTarget;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class ListSelectForUserExportBusiness {
|
||||
|
||||
|
||||
|
||||
/** 清单来源 */
|
||||
@Excel(name = "清单来源",readConverterExp = "0=总行,1=支行")
|
||||
private String createRole;
|
||||
|
||||
/** 清单名称 */
|
||||
@Excel(name = "清单名称")
|
||||
private String groupName;
|
||||
|
||||
|
||||
/** 关联活动名称 */
|
||||
@Excel(name = "任务名称")
|
||||
private String campaignName;
|
||||
|
||||
/** 客户号 */
|
||||
@Excel(name = "客户号")
|
||||
private String custId;
|
||||
|
||||
/** 客户名 */
|
||||
@Excel(name = "企业名称")
|
||||
private String custName;
|
||||
|
||||
/** 经营者名称 */
|
||||
@Excel(name = "法人代表姓名")
|
||||
private String lpName;
|
||||
|
||||
/** 客户手机号 */
|
||||
@Excel(name = "法人代表手机号")
|
||||
private String custPhone;
|
||||
|
||||
|
||||
/** 社会统一编码 */
|
||||
@Excel(name = "证件号")
|
||||
private String socialCreditCode;
|
||||
|
||||
/** 客户内码 */
|
||||
@Excel(name = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endTime;
|
||||
|
||||
/** 紧急程度 */
|
||||
@Excel(name = "紧急程度")
|
||||
private String campaignDegree;
|
||||
|
||||
|
||||
/** 分配机构名称 */
|
||||
@Excel(name = "推送支行")
|
||||
private String belongDept;
|
||||
|
||||
/** 认领类型 */
|
||||
@Excel(name = "认领类型",readConverterExp = "0=强制认领,1=可选认领")
|
||||
private String claimType;
|
||||
|
||||
/** 机构领取状态 */
|
||||
@Excel(name = "机构认领状态",readConverterExp = "0=待认领,1=已认领,/=/")
|
||||
private String orgClaimStatus;
|
||||
|
||||
/** 机构分配状态 */
|
||||
@Excel(name = "机构分配状态",readConverterExp = "0=待分配,1=已分配,/=/")
|
||||
private String orgDistributeStatus;
|
||||
|
||||
/** 客户经理分配状态 */
|
||||
@Excel(name = "客户经理分配状态",readConverterExp = "0=待分配,1=已分配")
|
||||
private String custClaimStatus;
|
||||
|
||||
|
||||
/** 所属客户经理(导出) */
|
||||
@Excel(name = "推送客户经理")
|
||||
private String userName;
|
||||
|
||||
/** 所属网点(导出) */
|
||||
@Excel(name = "推送网点")
|
||||
private String outlets;
|
||||
@Excel(name = "考核目标")
|
||||
private String checkTarget;
|
||||
|
||||
public String getCreateRole() {
|
||||
return createRole;
|
||||
}
|
||||
|
||||
public void setCreateRole(String createRole) {
|
||||
this.createRole = createRole;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public String getCampaignName() {
|
||||
return campaignName;
|
||||
}
|
||||
|
||||
public void setCampaignName(String campaignName) {
|
||||
this.campaignName = campaignName;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getLpName() {
|
||||
return lpName;
|
||||
}
|
||||
|
||||
public void setLpName(String lpName) {
|
||||
this.lpName = lpName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
|
||||
public String getSocialCreditCode() {
|
||||
return socialCreditCode;
|
||||
}
|
||||
|
||||
public void setSocialCreditCode(String socialCreditCode) {
|
||||
this.socialCreditCode = socialCreditCode;
|
||||
}
|
||||
|
||||
public String getCustIsn() {
|
||||
return custIsn;
|
||||
}
|
||||
|
||||
public void setCustIsn(String custIsn) {
|
||||
this.custIsn = custIsn;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getCampaignDegree() {
|
||||
return campaignDegree;
|
||||
}
|
||||
|
||||
public void setCampaignDegree(String campaignDegree) {
|
||||
this.campaignDegree = campaignDegree;
|
||||
}
|
||||
|
||||
public String getBelongDept() {
|
||||
return belongDept;
|
||||
}
|
||||
|
||||
public void setBelongDept(String belongDept) {
|
||||
this.belongDept = belongDept;
|
||||
}
|
||||
|
||||
public String getClaimType() {
|
||||
return claimType;
|
||||
}
|
||||
|
||||
public void setClaimType(String claimType) {
|
||||
this.claimType = claimType;
|
||||
}
|
||||
|
||||
public String getOrgClaimStatus() {
|
||||
return orgClaimStatus;
|
||||
}
|
||||
|
||||
public void setOrgClaimStatus(String orgClaimStatus) {
|
||||
this.orgClaimStatus = orgClaimStatus;
|
||||
}
|
||||
|
||||
public String getOrgDistributeStatus() {
|
||||
return orgDistributeStatus;
|
||||
}
|
||||
|
||||
public void setOrgDistributeStatus(String orgDistributeStatus) {
|
||||
this.orgDistributeStatus = orgDistributeStatus;
|
||||
}
|
||||
|
||||
public String getCustClaimStatus() {
|
||||
return custClaimStatus;
|
||||
}
|
||||
|
||||
public void setCustClaimStatus(String custClaimStatus) {
|
||||
this.custClaimStatus = custClaimStatus;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getOutlets() {
|
||||
return outlets;
|
||||
}
|
||||
|
||||
public void setOutlets(String outlets) {
|
||||
this.outlets = outlets;
|
||||
}
|
||||
|
||||
public String getCheckTarget() {
|
||||
return checkTarget;
|
||||
}
|
||||
|
||||
public void setCheckTarget(String checkTarget) {
|
||||
this.checkTarget = checkTarget;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class ListSelectForUserExportMerchant {
|
||||
|
||||
|
||||
|
||||
/** 清单来源 */
|
||||
@Excel(name = "清单来源",readConverterExp = "0=总行,1=支行")
|
||||
private String createRole;
|
||||
|
||||
/** 清单名称 */
|
||||
@Excel(name = "清单名称")
|
||||
private String groupName;
|
||||
|
||||
|
||||
/** 关联活动名称 */
|
||||
@Excel(name = "任务名称")
|
||||
private String campaignName;
|
||||
|
||||
/** 客户号 */
|
||||
@Excel(name = "客户号")
|
||||
private String custId;
|
||||
|
||||
/** 客户名 */
|
||||
@Excel(name = "商户名称")
|
||||
private String custName;
|
||||
|
||||
/** 经营者名称 */
|
||||
@Excel(name = "经营者姓名")
|
||||
private String lpName;
|
||||
|
||||
/** 客户手机号 */
|
||||
@Excel(name = "经营者手机号")
|
||||
private String custPhone;
|
||||
|
||||
|
||||
/** 社会统一编码 */
|
||||
@Excel(name = "证件号")
|
||||
private String socialCreditCode;
|
||||
|
||||
/** 客户内码 */
|
||||
@Excel(name = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endTime;
|
||||
|
||||
/** 紧急程度 */
|
||||
@Excel(name = "紧急程度")
|
||||
private String campaignDegree;
|
||||
|
||||
|
||||
/** 分配机构名称 */
|
||||
@Excel(name = "推送支行")
|
||||
private String belongDept;
|
||||
|
||||
/** 认领类型 */
|
||||
@Excel(name = "认领类型",readConverterExp = "0=强制认领,1=可选认领")
|
||||
private String claimType;
|
||||
|
||||
/** 机构领取状态 */
|
||||
@Excel(name = "机构认领状态",readConverterExp = "0=待认领,1=已认领,/=/")
|
||||
private String orgClaimStatus;
|
||||
|
||||
/** 机构分配状态 */
|
||||
@Excel(name = "机构分配状态",readConverterExp = "0=待分配,1=已分配,/=/")
|
||||
private String orgDistributeStatus;
|
||||
|
||||
/** 客户经理分配状态 */
|
||||
@Excel(name = "客户经理分配状态",readConverterExp = "0=待分配,1=已分配")
|
||||
private String custClaimStatus;
|
||||
|
||||
|
||||
/** 所属客户经理(导出) */
|
||||
@Excel(name = "推送客户经理")
|
||||
private String userName;
|
||||
|
||||
/** 所属网点(导出) */
|
||||
@Excel(name = "推送网点")
|
||||
private String outlets;
|
||||
@Excel(name = "考核目标")
|
||||
private String checkTarget;
|
||||
|
||||
public String getCreateRole() {
|
||||
return createRole;
|
||||
}
|
||||
|
||||
public void setCreateRole(String createRole) {
|
||||
this.createRole = createRole;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public String getCampaignName() {
|
||||
return campaignName;
|
||||
}
|
||||
|
||||
public void setCampaignName(String campaignName) {
|
||||
this.campaignName = campaignName;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getLpName() {
|
||||
return lpName;
|
||||
}
|
||||
|
||||
public void setLpName(String lpName) {
|
||||
this.lpName = lpName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
|
||||
public String getSocialCreditCode() {
|
||||
return socialCreditCode;
|
||||
}
|
||||
|
||||
public void setSocialCreditCode(String socialCreditCode) {
|
||||
this.socialCreditCode = socialCreditCode;
|
||||
}
|
||||
|
||||
public String getCustIsn() {
|
||||
return custIsn;
|
||||
}
|
||||
|
||||
public void setCustIsn(String custIsn) {
|
||||
this.custIsn = custIsn;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getCampaignDegree() {
|
||||
return campaignDegree;
|
||||
}
|
||||
|
||||
public void setCampaignDegree(String campaignDegree) {
|
||||
this.campaignDegree = campaignDegree;
|
||||
}
|
||||
|
||||
public String getBelongDept() {
|
||||
return belongDept;
|
||||
}
|
||||
|
||||
public void setBelongDept(String belongDept) {
|
||||
this.belongDept = belongDept;
|
||||
}
|
||||
|
||||
public String getClaimType() {
|
||||
return claimType;
|
||||
}
|
||||
|
||||
public void setClaimType(String claimType) {
|
||||
this.claimType = claimType;
|
||||
}
|
||||
|
||||
public String getOrgClaimStatus() {
|
||||
return orgClaimStatus;
|
||||
}
|
||||
|
||||
public void setOrgClaimStatus(String orgClaimStatus) {
|
||||
this.orgClaimStatus = orgClaimStatus;
|
||||
}
|
||||
|
||||
public String getOrgDistributeStatus() {
|
||||
return orgDistributeStatus;
|
||||
}
|
||||
|
||||
public void setOrgDistributeStatus(String orgDistributeStatus) {
|
||||
this.orgDistributeStatus = orgDistributeStatus;
|
||||
}
|
||||
|
||||
public String getCustClaimStatus() {
|
||||
return custClaimStatus;
|
||||
}
|
||||
|
||||
public void setCustClaimStatus(String custClaimStatus) {
|
||||
this.custClaimStatus = custClaimStatus;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getOutlets() {
|
||||
return outlets;
|
||||
}
|
||||
|
||||
public void setOutlets(String outlets) {
|
||||
this.outlets = outlets;
|
||||
}
|
||||
|
||||
public String getCheckTarget() {
|
||||
return checkTarget;
|
||||
}
|
||||
|
||||
public void setCheckTarget(String checkTarget) {
|
||||
this.checkTarget = checkTarget;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class ListSelectForUserExportRetail {
|
||||
|
||||
|
||||
|
||||
/** 清单来源 */
|
||||
@Excel(name = "清单来源",readConverterExp = "0=总行,1=支行")
|
||||
private String createRole;
|
||||
|
||||
/** 清单名称 */
|
||||
@Excel(name = "清单名称")
|
||||
private String groupName;
|
||||
|
||||
|
||||
/** 关联活动名称 */
|
||||
@Excel(name = "任务名称")
|
||||
private String campaignName;
|
||||
|
||||
/** 客户号 */
|
||||
@Excel(name = "客户号")
|
||||
private String custId;
|
||||
|
||||
/** 客户名 */
|
||||
@Excel(name = "客户名")
|
||||
private String custName;
|
||||
|
||||
/** 客户手机号 */
|
||||
@Excel(name = "客户手机号")
|
||||
private String custPhone;
|
||||
|
||||
/** 客户证件号 */
|
||||
@Excel(name = "证件号")
|
||||
private String custIdc;
|
||||
|
||||
|
||||
/** 客户内码 */
|
||||
@Excel(name = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endTime;
|
||||
|
||||
/** 紧急程度 */
|
||||
@Excel(name = "紧急程度")
|
||||
private String campaignDegree;
|
||||
|
||||
|
||||
/** 分配机构名称 */
|
||||
@Excel(name = "推送支行")
|
||||
private String belongDept;
|
||||
|
||||
/** 认领类型 */
|
||||
@Excel(name = "认领类型",readConverterExp = "0=强制认领,1=可选认领")
|
||||
private String claimType;
|
||||
|
||||
/** 机构领取状态 */
|
||||
@Excel(name = "机构认领状态",readConverterExp = "0=待认领,1=已认领,/=/")
|
||||
private String orgClaimStatus;
|
||||
|
||||
/** 机构分配状态 */
|
||||
@Excel(name = "机构分配状态",readConverterExp = "0=待分配,1=已分配,/=/")
|
||||
private String orgDistributeStatus;
|
||||
|
||||
/** 客户经理分配状态 */
|
||||
@Excel(name = "客户经理分配状态",readConverterExp = "0=待分配,1=已分配")
|
||||
private String custClaimStatus;
|
||||
|
||||
|
||||
/** 所属客户经理(导出) */
|
||||
@Excel(name = "推送客户经理")
|
||||
private String userName;
|
||||
|
||||
/** 所属网点(导出) */
|
||||
@Excel(name = "推送网点")
|
||||
private String outlets;
|
||||
@Excel(name = "考核目标")
|
||||
private String checkTarget;
|
||||
|
||||
public String getCreateRole() {
|
||||
return createRole;
|
||||
}
|
||||
|
||||
public void setCreateRole(String createRole) {
|
||||
this.createRole = createRole;
|
||||
}
|
||||
|
||||
public String getGroupName() {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
public String getCampaignName() {
|
||||
return campaignName;
|
||||
}
|
||||
|
||||
public void setCampaignName(String campaignName) {
|
||||
this.campaignName = campaignName;
|
||||
}
|
||||
|
||||
public String getCustId() {
|
||||
return custId;
|
||||
}
|
||||
|
||||
public void setCustId(String custId) {
|
||||
this.custId = custId;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
public String getCustIdc() {
|
||||
return custIdc;
|
||||
}
|
||||
|
||||
public void setCustIdc(String custIdc) {
|
||||
this.custIdc = custIdc;
|
||||
}
|
||||
|
||||
|
||||
public String getCustIsn() {
|
||||
return custIsn;
|
||||
}
|
||||
|
||||
public void setCustIsn(String custIsn) {
|
||||
this.custIsn = custIsn;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getCampaignDegree() {
|
||||
return campaignDegree;
|
||||
}
|
||||
|
||||
public void setCampaignDegree(String campaignDegree) {
|
||||
this.campaignDegree = campaignDegree;
|
||||
}
|
||||
|
||||
public String getBelongDept() {
|
||||
return belongDept;
|
||||
}
|
||||
|
||||
public void setBelongDept(String belongDept) {
|
||||
this.belongDept = belongDept;
|
||||
}
|
||||
|
||||
public String getClaimType() {
|
||||
return claimType;
|
||||
}
|
||||
|
||||
public void setClaimType(String claimType) {
|
||||
this.claimType = claimType;
|
||||
}
|
||||
|
||||
public String getOrgClaimStatus() {
|
||||
return orgClaimStatus;
|
||||
}
|
||||
|
||||
public void setOrgClaimStatus(String orgClaimStatus) {
|
||||
this.orgClaimStatus = orgClaimStatus;
|
||||
}
|
||||
|
||||
public String getOrgDistributeStatus() {
|
||||
return orgDistributeStatus;
|
||||
}
|
||||
|
||||
public void setOrgDistributeStatus(String orgDistributeStatus) {
|
||||
this.orgDistributeStatus = orgDistributeStatus;
|
||||
}
|
||||
|
||||
public String getCustClaimStatus() {
|
||||
return custClaimStatus;
|
||||
}
|
||||
|
||||
public void setCustClaimStatus(String custClaimStatus) {
|
||||
this.custClaimStatus = custClaimStatus;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getOutlets() {
|
||||
return outlets;
|
||||
}
|
||||
|
||||
public void setOutlets(String outlets) {
|
||||
this.outlets = outlets;
|
||||
}
|
||||
|
||||
public String getCheckTarget() {
|
||||
return checkTarget;
|
||||
}
|
||||
|
||||
public void setCheckTarget(String checkTarget) {
|
||||
this.checkTarget = checkTarget;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MerchantExportVo {
|
||||
/** 客户标签 */
|
||||
@Excel(name = "客户分类",readConverterExp = "0=个人,1=商户,2=企业")
|
||||
private String custPattern;
|
||||
|
||||
/** 企业名称 */
|
||||
@Excel(name = "商户名称")
|
||||
private String custName;
|
||||
@Excel(name = "归属总行网格名称")
|
||||
private String regionTopGridName;
|
||||
|
||||
@Excel(name = "归属支行网格名称")
|
||||
private String regionSecGridName;
|
||||
/** 归属支行 */
|
||||
@Excel(name = "行政网格归属支行")
|
||||
private String belongBranchName;
|
||||
|
||||
/** 归属网点 */
|
||||
@Excel(name = "行政网格归属网点")
|
||||
private String belongOutletName;
|
||||
|
||||
/**
|
||||
* 归属 网格客户经理名,多个按照逗号 隔开
|
||||
*/
|
||||
@Excel(name = "行政网格归属客户经理")
|
||||
private String belongUserNameList;
|
||||
|
||||
@Excel(name = "归属自定义地图网格名称")
|
||||
private String drawGridName;
|
||||
|
||||
@Excel(name = "自定义地图网格归属支行")
|
||||
private String drawBranchNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属网点")
|
||||
private String drawOutletNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属客户经理")
|
||||
private String drawUserNames;
|
||||
|
||||
@Excel(name = "归属自定义名单网格名称")
|
||||
private String virtualGridName;
|
||||
@Excel(name = "自定义名单网格归属支行")
|
||||
private String virtualBranchNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属网点")
|
||||
private String virtualOutletNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属客户经理")
|
||||
private String virtualUserNames;
|
||||
|
||||
|
||||
|
||||
/** 经营者姓名 */
|
||||
@Excel(name = "经营者姓名")
|
||||
private String lpName;
|
||||
|
||||
/** 经营者电话 */
|
||||
@Excel(name = "经营者电话")
|
||||
private String custPhone;
|
||||
|
||||
|
||||
|
||||
/** 客户类型 */
|
||||
@Excel(name = "客户类型",readConverterExp = "0=存量,1=潜在,2=暂无")
|
||||
// @Excel(name = "客户类型")
|
||||
private String custType ;
|
||||
|
||||
/** 产品标签 */
|
||||
@Excel(name = "产品标签",readConverterExp = "000=暂无,100=存款,010=贷款,001=中收,110=存款、贷款,101=存款、中收,011=贷款、中收,111=存款、贷款、中收")
|
||||
// @Excel(name = "产品标签")
|
||||
private String custTag;
|
||||
|
||||
//个人商户业务指标
|
||||
/**
|
||||
* 活期存款余额
|
||||
*/
|
||||
@Excel(name = "活期存款余额(元)")
|
||||
private String curBalD;
|
||||
/**
|
||||
* 定期存款余额
|
||||
*/
|
||||
@Excel(name = "定期存款余额(元)")
|
||||
private String curBalT;
|
||||
/**
|
||||
* 贷款余额
|
||||
*/
|
||||
@Excel(name = "贷款余额(元)")
|
||||
private String balLoan;
|
||||
/**
|
||||
* 五级不良贷款余额
|
||||
*/
|
||||
@Excel(name = "五级不良贷款余额(元)")
|
||||
private String curBal5Bad;
|
||||
/**
|
||||
* 活期存款年日均
|
||||
*/
|
||||
@Excel(name = "活期存款年日均(元)")
|
||||
private String curDAve;
|
||||
/**
|
||||
* 定期存款年日均
|
||||
*/
|
||||
@Excel(name = "定期存款年日均(元)")
|
||||
private String curTAve;
|
||||
/**
|
||||
* 贷款年日均
|
||||
*/
|
||||
@Excel(name = "贷款年日均(元)")
|
||||
private String loanAve;
|
||||
/**
|
||||
* 是否建档
|
||||
*/
|
||||
@Excel(name = "是否建档")
|
||||
private String isPh;
|
||||
/**
|
||||
* 是否授信
|
||||
*/
|
||||
@Excel(name = "是否授信")
|
||||
private String isSx;
|
||||
/**
|
||||
* 是否合同签约
|
||||
*/
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isYxht;
|
||||
/**
|
||||
* 是否持有信用卡
|
||||
*/
|
||||
@Excel(name = "是否持有信用卡")
|
||||
private String isXyk;
|
||||
/**
|
||||
* 是否开通丰收互联
|
||||
*/
|
||||
@Excel(name = "是否开通丰收互联")
|
||||
private String fshl;
|
||||
/**
|
||||
* 是否办理收单
|
||||
*/
|
||||
@Excel(name = "是否办理收单")
|
||||
private String isSd;
|
||||
/**
|
||||
* 是否办理etc
|
||||
*/
|
||||
@Excel(name = "是否办理etc")
|
||||
private String etc;
|
||||
/**
|
||||
* 是否代扣电费
|
||||
*/
|
||||
@Excel(name = "是否代扣电费")
|
||||
private String dian;
|
||||
/**
|
||||
* 是否贷款黑名单
|
||||
*/
|
||||
@Excel(name = "是否贷款黑名单")
|
||||
private String isBlack;
|
||||
/**
|
||||
* 是否五级不良贷款客户
|
||||
*/
|
||||
@Excel(name = "是否五级不良贷款客户")
|
||||
private String isBad;
|
||||
@Excel(name = "近365天有无走访")
|
||||
private String is365zf;
|
||||
@Excel(name = "近180天有无走访")
|
||||
private String is180zf;
|
||||
@Excel(name = "近90天有无走访")
|
||||
private String is90zf;
|
||||
@Excel(name = "近30天有无走访")
|
||||
private String is30zf;
|
||||
|
||||
public String getCustPattern() {
|
||||
return custPattern;
|
||||
}
|
||||
|
||||
public void setCustPattern(String custPattern) {
|
||||
this.custPattern = custPattern;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getBelongBranchName() {
|
||||
return belongBranchName;
|
||||
}
|
||||
|
||||
public void setBelongBranchName(String belongBranchName) {
|
||||
this.belongBranchName = belongBranchName;
|
||||
}
|
||||
|
||||
public String getBelongOutletName() {
|
||||
return belongOutletName;
|
||||
}
|
||||
|
||||
public void setBelongOutletName(String belongOutletName) {
|
||||
this.belongOutletName = belongOutletName;
|
||||
}
|
||||
|
||||
public String getLpName() {
|
||||
return lpName;
|
||||
}
|
||||
|
||||
public void setLpName(String lpName) {
|
||||
this.lpName = lpName;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
public String getBelongUserNameList() {
|
||||
return belongUserNameList;
|
||||
}
|
||||
|
||||
public void setBelongUserNameList(String belongUserNameList) {
|
||||
this.belongUserNameList = belongUserNameList;
|
||||
}
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getCustTag() {
|
||||
return custTag;
|
||||
}
|
||||
|
||||
public void setCustTag(String custTag) {
|
||||
this.custTag = custTag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MerchantMcspInfo {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String custId;
|
||||
/**
|
||||
* 特约商户号
|
||||
*/
|
||||
private String custSmchno;
|
||||
/**
|
||||
* 收单产品
|
||||
*/
|
||||
private String productType;
|
||||
/**
|
||||
* 联系人
|
||||
*/
|
||||
private String contactName;
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
private String contactPhone;
|
||||
/**
|
||||
* 商户类别码
|
||||
*/
|
||||
private String mchmcc;
|
||||
/**
|
||||
* 结算方式
|
||||
*/
|
||||
private String jsType;
|
||||
/**
|
||||
* 账户类别
|
||||
*/
|
||||
private String accountType;
|
||||
/**
|
||||
* 收单结算账户账号
|
||||
*/
|
||||
private String accountId;
|
||||
/**
|
||||
* 收单结算账户名称
|
||||
*/
|
||||
private String accountName;
|
||||
/**
|
||||
* 商户收单结算周期
|
||||
*/
|
||||
private String jsCycle;
|
||||
/**
|
||||
* 计费模式
|
||||
*/
|
||||
private String billMode;
|
||||
/**
|
||||
* 免费额度
|
||||
*/
|
||||
private String freeQuota;
|
||||
/**
|
||||
* 剩余免费额度
|
||||
*/
|
||||
private String rareFree;
|
||||
/**
|
||||
* 年收单笔数
|
||||
*/
|
||||
private String yearBillCount;
|
||||
/**
|
||||
* 年收单金额
|
||||
*/
|
||||
private String yearBillAmount;
|
||||
/**
|
||||
* 上月收单金额
|
||||
*/
|
||||
private String lastMonthBillAmount;
|
||||
/**
|
||||
* 上月收单笔数
|
||||
*/
|
||||
private String lastMonthBillCount;
|
||||
/**
|
||||
* 上月收单账户日均存款
|
||||
*/
|
||||
private String lastMonthAccountAvgAmount;
|
||||
/**
|
||||
* 收单账户手续费收取情况
|
||||
*/
|
||||
private String accountRareMsg;
|
||||
/**
|
||||
* 商户年日均存款
|
||||
*/
|
||||
private String accountYearAvgAmount;
|
||||
/**
|
||||
* 商户星级评定
|
||||
*/
|
||||
private String accountStar;
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
package com.ruoyi.ibs.customerselect.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RetailExportVo {
|
||||
/** 客户标签 */
|
||||
@Excel(name = "客户分类",readConverterExp = "0=个人,1=商户,2=企业")
|
||||
private String custPattern;
|
||||
|
||||
/** 企业名称 */
|
||||
@Excel(name = "客户名称")
|
||||
private String custName;
|
||||
@Excel(name = "归属总行网格名称")
|
||||
private String regionTopGridName;
|
||||
|
||||
@Excel(name = "归属支行网格名称")
|
||||
private String regionSecGridName;
|
||||
/** 归属支行 */
|
||||
@Excel(name = "行政网格归属支行")
|
||||
private String belongBranchName;
|
||||
|
||||
/** 归属网点 */
|
||||
@Excel(name = "行政网格归属网点")
|
||||
private String belongOutletName;
|
||||
|
||||
@Excel(name = "归属自定义地图网格名称")
|
||||
private String drawGridName;
|
||||
|
||||
@Excel(name = "自定义地图网格归属支行")
|
||||
private String drawBranchNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属网点")
|
||||
private String drawOutletNames;
|
||||
|
||||
@Excel(name = "自定义地图网格归属客户经理")
|
||||
private String drawUserNames;
|
||||
|
||||
/**
|
||||
* 归属 网格客户经理名,多个按照逗号 隔开
|
||||
*/
|
||||
@Excel(name = "行政网格归属客户经理")
|
||||
private String belongUserNameList;
|
||||
@Excel(name = "归属自定义名单网格名称")
|
||||
private String virtualGridName;
|
||||
@Excel(name = "自定义名单网格归属支行")
|
||||
private String virtualBranchNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属网点")
|
||||
private String virtualOutletNames;
|
||||
|
||||
@Excel(name = "自定义名单网格归属客户经理")
|
||||
private String virtualUserNames;
|
||||
|
||||
|
||||
|
||||
/** 经营者电话 */
|
||||
@Excel(name = "客户电话")
|
||||
private String custPhone;
|
||||
|
||||
/** 客户类型 */
|
||||
@Excel(name = "客户类型",readConverterExp = "0=存量,1=潜在,2=暂无")
|
||||
// @Excel(name = "客户类型")
|
||||
private String custType ;
|
||||
|
||||
/** 产品标签 */
|
||||
@Excel(name = "产品标签",readConverterExp = "000=暂无,100=存款,010=贷款,001=中收,110=存款、贷款,101=存款、中收,011=贷款、中收,111=存款、贷款、中收")
|
||||
// @Excel(name = "产品标签")
|
||||
private String custTag;
|
||||
|
||||
//个人商户业务指标
|
||||
/**
|
||||
* 活期存款余额
|
||||
*/
|
||||
@Excel(name = "活期存款余额(元)")
|
||||
private String curBalD;
|
||||
/**
|
||||
* 定期存款余额
|
||||
*/
|
||||
@Excel(name = "定期存款余额(元)")
|
||||
private String curBalT;
|
||||
/**
|
||||
* 贷款余额
|
||||
*/
|
||||
@Excel(name = "贷款余额(元)")
|
||||
private String balLoan;
|
||||
/**
|
||||
* 五级不良贷款余额
|
||||
*/
|
||||
@Excel(name = "五级不良贷款余额(元)")
|
||||
private String curBal5Bad;
|
||||
/**
|
||||
* 活期存款年日均
|
||||
*/
|
||||
@Excel(name = "活期存款年日均(元)")
|
||||
private String curDAve;
|
||||
/**
|
||||
* 定期存款年日均
|
||||
*/
|
||||
@Excel(name = "定期存款年日均(元)")
|
||||
private String curTAve;
|
||||
/**
|
||||
* 贷款年日均
|
||||
*/
|
||||
@Excel(name = "贷款年日均(元)")
|
||||
private String loanAve;
|
||||
/**
|
||||
* 是否建档
|
||||
*/
|
||||
@Excel(name = "是否建档")
|
||||
private String isPh;
|
||||
/**
|
||||
* 是否授信
|
||||
*/
|
||||
@Excel(name = "是否授信")
|
||||
private String isSx;
|
||||
/**
|
||||
* 是否合同签约
|
||||
*/
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isYxht;
|
||||
/**
|
||||
* 是否持有信用卡
|
||||
*/
|
||||
@Excel(name = "是否持有信用卡")
|
||||
private String isXyk;
|
||||
/**
|
||||
* 是否开通丰收互联
|
||||
*/
|
||||
@Excel(name = "是否开通丰收互联")
|
||||
private String fshl;
|
||||
/**
|
||||
* 是否办理收单
|
||||
*/
|
||||
@Excel(name = "是否办理收单")
|
||||
private String isSd;
|
||||
/**
|
||||
* 是否办理etc
|
||||
*/
|
||||
@Excel(name = "是否办理etc")
|
||||
private String etc;
|
||||
/**
|
||||
* 是否代扣电费
|
||||
*/
|
||||
@Excel(name = "是否代扣电费")
|
||||
private String dian;
|
||||
/**
|
||||
* 是否贷款黑名单
|
||||
*/
|
||||
@Excel(name = "是否贷款黑名单")
|
||||
private String isBlack;
|
||||
/**
|
||||
* 是否五级不良贷款客户
|
||||
*/
|
||||
@Excel(name = "是否五级不良贷款客户")
|
||||
private String isBad;
|
||||
|
||||
@Excel(name = "近365天有无走访")
|
||||
private String is365zf;
|
||||
@Excel(name = "近180天有无走访")
|
||||
private String is180zf;
|
||||
@Excel(name = "近90天有无走访")
|
||||
private String is90zf;
|
||||
@Excel(name = "近30天有无走访")
|
||||
private String is30zf;
|
||||
public String getCustPattern() {
|
||||
return custPattern;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustPattern(String custPattern) {
|
||||
this.custPattern = custPattern;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getBelongBranchName() {
|
||||
return belongBranchName;
|
||||
}
|
||||
|
||||
public void setBelongBranchName(String belongBranchName) {
|
||||
this.belongBranchName = belongBranchName;
|
||||
}
|
||||
|
||||
public String getBelongOutletName() {
|
||||
return belongOutletName;
|
||||
}
|
||||
|
||||
public void setBelongOutletName(String belongOutletName) {
|
||||
this.belongOutletName = belongOutletName;
|
||||
}
|
||||
|
||||
public String getBelongUserNameList() {
|
||||
return belongUserNameList;
|
||||
}
|
||||
|
||||
public void setBelongUserNameList(String belongUserNameList) {
|
||||
this.belongUserNameList = belongUserNameList;
|
||||
}
|
||||
|
||||
public String getCustPhone() {
|
||||
return custPhone;
|
||||
}
|
||||
|
||||
public void setCustPhone(String custPhone) {
|
||||
this.custPhone = custPhone;
|
||||
}
|
||||
|
||||
public String getCustType() {
|
||||
return custType;
|
||||
}
|
||||
|
||||
public void setCustType(String custType) {
|
||||
this.custType = custType;
|
||||
}
|
||||
|
||||
public String getCustTag() {
|
||||
return custTag;
|
||||
}
|
||||
|
||||
public void setCustTag(String custTag) {
|
||||
this.custTag = custTag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.ruoyi.ibs.customerselect.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/9
|
||||
**/
|
||||
@Data
|
||||
public class GridRelateVO {
|
||||
|
||||
private String custId;
|
||||
|
||||
private String gridNames;
|
||||
|
||||
private String branchNames;
|
||||
|
||||
private String outletNames;
|
||||
|
||||
private String userNames;
|
||||
|
||||
private String topGridName;
|
||||
|
||||
private String secGridName;
|
||||
|
||||
private String deptIds;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.ibs.customerselect.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/8
|
||||
**/
|
||||
@Data
|
||||
public class GridSelectVO {
|
||||
|
||||
private Long gridId;
|
||||
|
||||
private String gridName;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.ibs.customerselect.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/9
|
||||
**/
|
||||
@Data
|
||||
public class VirtualGridRelateVO {
|
||||
private String gridNames;
|
||||
|
||||
private String branchNames;
|
||||
|
||||
private String outletsNames;
|
||||
|
||||
private String userNames;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.ibs.customerselect.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustCsvTag;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/8
|
||||
**/
|
||||
public interface CustCsvTagMapper extends BaseMapper<CustCsvTag> {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
package com.ruoyi.ibs.customerselect.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.common.core.domain.entity.CustInfoBusiness;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustBaseInfo;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustInfoDeleteFromAnchor;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustInfoUpdateFromAnchor;
|
||||
import com.ruoyi.ibs.customerselect.domain.ListSelectForUser;
|
||||
import com.ruoyi.ibs.grid.domain.dto.CustManageInfo;
|
||||
import com.ruoyi.ibs.list.domain.SysGroupCustomer;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 客户基本信息Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-09-11
|
||||
*/
|
||||
public interface CustInfoBusinessMapper extends BaseMapper<CustInfoBusiness>
|
||||
{
|
||||
/**
|
||||
* 查询企业客户基本信息列表
|
||||
*
|
||||
* @param sysCustomerBasedata 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessList(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessListHead(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessListOps(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
/**
|
||||
* 使用行政区划查询客户数量
|
||||
*
|
||||
* @param gridId 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public Long selectBusinessNumByAdmin(@Param("gridId")Long gridId, @Param("userDept")Long userDept);
|
||||
|
||||
|
||||
/**
|
||||
* 使用机构id查询客户数量
|
||||
*
|
||||
* @param headDeptId 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public Long getBusinessNumByDeptId(Long headDeptId);
|
||||
|
||||
/**
|
||||
* 使用经理id查询客户数量
|
||||
*
|
||||
* @param UserId 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public Long getBusinessNumByUserId(String UserId);
|
||||
|
||||
|
||||
/**
|
||||
* 使用行政区划查询未分配客户信息列表
|
||||
*
|
||||
* @param custManageInfo 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessByAdminList(CustManageInfo custManageInfo);
|
||||
|
||||
/**
|
||||
* 使用行政区划查询未分配客户信息列表
|
||||
*
|
||||
* @param custManageInfo 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectunDisCustByAdminList(CustManageInfo custManageInfo);
|
||||
|
||||
/**
|
||||
* 使用虚拟网格查询未分配客户信息列表
|
||||
*
|
||||
* @param custManageInfo 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessByVirtualList(CustManageInfo custManageInfo);
|
||||
|
||||
/**
|
||||
* 使用虚拟网格查询未分配客户信息列表
|
||||
*
|
||||
* @param custManageInfo 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectunDisCustByVirtualList(CustManageInfo custManageInfo);
|
||||
|
||||
/**
|
||||
* 查询企业客户基本信息
|
||||
*
|
||||
* @param id 企业客户基本信息主键
|
||||
* @return 企业客户基本信息
|
||||
*/
|
||||
public CustInfoBusiness selectCustInfoBusinessById(Long id);
|
||||
|
||||
/**
|
||||
* 查询企业客户基本信息列表
|
||||
*
|
||||
* @param custInfoBusiness 企业客户基本信息
|
||||
* @return 企业客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessListBykeyword(@Param("keyword") String keyword);
|
||||
|
||||
/**
|
||||
* 查询企业客户基本信息列表
|
||||
*
|
||||
* @param custInfoBusiness 企业客户基本信息
|
||||
* @return 企业客户基本信息集合
|
||||
*/
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessListBykeywordBranchAndManager(@Param("keyword") String keyword,@Param("deptId")Long deptId,@Param("outletsId")Long outletsId,@Param("userId")Long userId,@Param("opsDept") String opsDept);
|
||||
|
||||
/**
|
||||
* 新增企业客户基本信息
|
||||
*
|
||||
* @param custInfoBusiness 企业客户基本信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertCustInfoBusiness(CustInfoBusiness custInfoBusiness);
|
||||
|
||||
/**
|
||||
* 修改企业客户基本信息
|
||||
*
|
||||
* @param custInfoBusiness 企业客户基本信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateCustInfoBusiness(CustInfoBusiness custInfoBusiness);
|
||||
|
||||
public int updateCustInfoBusinessLabel(CustInfoBusiness custInfoBusiness);
|
||||
|
||||
/**
|
||||
* 删除企业客户基本信息
|
||||
*
|
||||
* @param id 企业客户基本信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCustInfoBusinessById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除企业客户基本信息
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCustInfoBusinessByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 查询企业客户基本信息
|
||||
*
|
||||
* @param custId 企业客户基本信息主键
|
||||
* @return 企业客户基本信息
|
||||
*/
|
||||
public CustInfoBusiness selectCustInfoBusinessByCustId(String custId);
|
||||
|
||||
/**
|
||||
* 根据统信码查询企业客户基本信息
|
||||
* @param socialCreditCode
|
||||
* @return
|
||||
*/
|
||||
public CustInfoBusiness selectCustInfoBusinessBySocialCreditCode(String socialCreditCode);
|
||||
|
||||
public List<CustInfoBusiness> selectCustInfoBusinessLists(CustInfoBusiness custInfoBusiness);
|
||||
|
||||
/**
|
||||
* 使用证件号查询客户数量
|
||||
*
|
||||
* @param LegalId 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public Long getBusinessNumByLegalId(String LegalId);
|
||||
|
||||
/**
|
||||
* 锚点更新客户信息
|
||||
*
|
||||
* @param custInfoUpdateFromAnchor 管户信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateBusinessByAnchor(CustInfoUpdateFromAnchor custInfoUpdateFromAnchor);
|
||||
|
||||
/**
|
||||
* 锚点新增客户信息
|
||||
*
|
||||
* @param custInfoUpdateFromAnchor 客户信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertBusinessByAnchor(CustInfoUpdateFromAnchor custInfoUpdateFromAnchor);
|
||||
|
||||
/**
|
||||
* 锚点删除客户信息
|
||||
*
|
||||
* @param custInfoDeleteFromAnchor 客户信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBusinessByAnchor(CustInfoDeleteFromAnchor custInfoDeleteFromAnchor);
|
||||
|
||||
/**
|
||||
* 获取客群客户经营者名称
|
||||
*
|
||||
* @param listSelectForUser 清单名称或者活动名称关键词
|
||||
* @return 客户经理
|
||||
*/
|
||||
public String getLpNameByCustId(ListSelectForUser listSelectForUser);
|
||||
|
||||
/**
|
||||
* 使用客户号查询客户证件号
|
||||
*
|
||||
* @param custId 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public String getBusiIdcByCustId(String custId);
|
||||
|
||||
/**
|
||||
* 使用查询行政网格客户信息列表
|
||||
*
|
||||
* @param custManageInfo 企业客户基本信息
|
||||
* @return 客户基本信息集合
|
||||
*/
|
||||
public List<CustManageInfo> selectBusinessInfoByManage(CustManageInfo custManageInfo);
|
||||
|
||||
/**
|
||||
* 查询企业客户基本信息
|
||||
*
|
||||
* @param id 企业客户基本信息主键
|
||||
* @return 企业客户基本信息
|
||||
*/
|
||||
public CustInfoBusiness selectCustInfoBusinessByCustNameAndCustIdc(@Param("custName") String custName,@Param("custIdc") String custIdc);
|
||||
|
||||
/**
|
||||
* 查询企业客户基本信息
|
||||
*
|
||||
* @param custId
|
||||
* @return 企业客户基本信息
|
||||
*/
|
||||
public CustInfoBusiness selectCustInfoBusinessCustId(@Param("custId") String custId);
|
||||
|
||||
Long countByCode(@Param("code") String code, @Param("deptCode") String deptCode);
|
||||
|
||||
public int insertCustomersToBusinessByScCode(List<SysGroupCustomer> sysGroupCustomers);
|
||||
|
||||
List<CustInfoBusiness> selectRecord(String socialCreditCode);
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.ruoyi.ibs.customerselect.mapper;
|
||||
|
||||
import com.ruoyi.ibs.customerselect.domain.vo.GridRelateVO;
|
||||
import com.ruoyi.ibs.customerselect.domain.vo.GridSelectVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/8
|
||||
**/
|
||||
public interface GridSelectMapper {
|
||||
|
||||
List<GridSelectVO> getRegionGridList(@Param("deptId") Long deptId, @Param("userName") String userName, @Param("gridLevel") String gridLevel, @Param("opsDept") String opsDept);
|
||||
|
||||
List<GridSelectVO> getVirtualGridList(@Param("deptId") Long deptId, @Param("userName") String userName, @Param("opsDept") String opsDept);
|
||||
|
||||
List<GridSelectVO> getDrawGridList(@Param("deptId") Long deptId, @Param("userName") String userName, @Param("opsDept") String opsDept);
|
||||
|
||||
List<GridRelateVO> getDrawGridRelate(@Param("custIds") List<String> custIds);
|
||||
|
||||
List<GridRelateVO> getRegionGridRelate(@Param("custIds") List<String> custIds);
|
||||
|
||||
List<GridRelateVO> getVirtualGridRelate(@Param("custIds") List<String> custIds, @Param("userName") String userName);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.ruoyi.ibs.customerselect.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.ruoyi.ibs.customerselect.domain.CustBaseInfo;
|
||||
import com.ruoyi.ibs.customerselect.domain.GridSummarCount;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 网格汇总统计_公司Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-03-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface GridSummarCountMapper
|
||||
{
|
||||
/**
|
||||
* 查询网格汇总统计_公司
|
||||
*
|
||||
* @param dt 网格汇总统计_公司主键
|
||||
* @return 网格汇总统计_公司
|
||||
*/
|
||||
public GridSummarCount selectGridSummarCountByDt(String dt);
|
||||
|
||||
/**
|
||||
* 查询网格汇总统计_公司列表
|
||||
*
|
||||
* @param GridSummarCount 网格汇总统计_公司
|
||||
* @return 网格汇总统计_公司集合
|
||||
*/
|
||||
public List<GridSummarCount> selectGridSummarCountList(GridSummarCount GridSummarCount);
|
||||
|
||||
/**
|
||||
* 新增网格汇总统计_公司
|
||||
*
|
||||
* @param GridSummarCount 网格汇总统计_公司
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertGridSummarCount(GridSummarCount GridSummarCount);
|
||||
|
||||
/**
|
||||
* 修改网格汇总统计_公司
|
||||
*
|
||||
* @param GridSummarCount 网格汇总统计_公司
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateGridSummarCount(GridSummarCount GridSummarCount);
|
||||
|
||||
/**
|
||||
* 删除网格汇总统计_公司
|
||||
*
|
||||
* @param dt 网格汇总统计_公司主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteGridSummarCountByDt(String dt);
|
||||
|
||||
/**
|
||||
* 批量删除网格汇总统计_公司
|
||||
*
|
||||
* @param dts 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteGridSummarCountByDts(String[] dts);
|
||||
|
||||
List<Map<String,Object>> selectContinuousParams(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
List<Map<String,Object>> selectDiscreteParams(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
public String selectDictLabelByDictValue(@Param("dictValue") String dictValue);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ruoyi.ibs.customerselect.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.ibs.customerselect.domain.MerchantMcspInfo;
|
||||
|
||||
public interface MerchantMcspInfoMapper extends BaseMapper<MerchantMcspInfo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
package com.ruoyi.ibs.customerselect.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.opencsv.CSVReader;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.ibs.customerselect.domain.CustCsvTag;
|
||||
import com.ruoyi.ibs.customerselect.mapper.CustCsvTagMapper;
|
||||
import com.ruoyi.system.enums.OssFileEnum;
|
||||
import com.ruoyi.system.service.OssFileService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/11/27
|
||||
**/
|
||||
@Service
|
||||
@Slf4j
|
||||
@EnableAsync
|
||||
public class CustCsvTagService {
|
||||
|
||||
@Resource
|
||||
private OssFileService ossFileService;
|
||||
|
||||
@Resource
|
||||
private CustCsvTagMapper custCsvTagMapper;
|
||||
|
||||
private final static ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
@Async
|
||||
public void processCsvInBatches(MultipartFile file, String userName, String headId) {
|
||||
log.info("开始执行CSV标签更新");
|
||||
try{
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(file.getInputStream(), "UTF-8");
|
||||
CSVReader reader = new CSVReader(new BufferedReader(inputStreamReader));
|
||||
String[] headers = reader.readNext(); // 读取标题行
|
||||
String[] row;
|
||||
|
||||
while ((row = reader.readNext()) != null) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
String custIdc = null;
|
||||
for (int i = 0; i < headers.length; i++) {
|
||||
jsonObject.put(headers[i], row[i]);
|
||||
if (headers[i].equals("身份证")){
|
||||
custIdc = row[i];
|
||||
}
|
||||
}
|
||||
if (custIdc == null){
|
||||
log.error("------------------------>CSV标签JSON上传出错:身份证为空");
|
||||
continue;
|
||||
}
|
||||
updateCSVtoOSS(jsonObject, custIdc, userName, headId);
|
||||
}
|
||||
} catch (Exception e){
|
||||
log.error("------------------------>执行CSV标签出错:",e);
|
||||
throw new ServiceException("执行CSV标签出错:" + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateCSVtoOSS(JSONObject jsonObject, String custIdc, String userName, String headId) {
|
||||
String fileId = writeJsonToOss(jsonObject, custIdc, userName);
|
||||
LambdaQueryWrapper<CustCsvTag> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CustCsvTag::getCustIdc, custIdc);
|
||||
queryWrapper.eq(CustCsvTag::getHeadId, headId);
|
||||
CustCsvTag custCsvTag = custCsvTagMapper.selectOne(queryWrapper);
|
||||
if (Objects.nonNull(custCsvTag)){
|
||||
ossFileService.deleteFileFromOss(custCsvTag.getFileId());
|
||||
log.info("删除旧文件:" + custCsvTag.getFileId());
|
||||
custCsvTagMapper.deleteById(custCsvTag);
|
||||
}
|
||||
custCsvTag = new CustCsvTag();
|
||||
custCsvTag.setCustIdc(custIdc);
|
||||
custCsvTag.setHeadId(headId);
|
||||
custCsvTag.setFileId(fileId);
|
||||
custCsvTag.setUpdateTime(new Date());
|
||||
custCsvTagMapper.insert(custCsvTag);
|
||||
log.info("CSV标签JSON保存成功:" + custIdc);
|
||||
}
|
||||
|
||||
private String writeJsonToOss(JSONObject jsonObject, String fileNamePrefix, String userName) {
|
||||
File tempFile = null;
|
||||
try {
|
||||
tempFile = File.createTempFile(fileNamePrefix, ".json");
|
||||
String originalFileName = fileNamePrefix + ".json";
|
||||
objectMapper.writeValue(tempFile, jsonObject);
|
||||
return ossFileService.uploadFileToOss(OssFileEnum.CUST_CSV_TAG, tempFile, originalFileName, userName);
|
||||
}catch (Exception e){
|
||||
log.error("------------------------>CSV标签JSON上传出错:",e);
|
||||
throw new ServiceException("CSV标签JSON上传出错:" + e.getMessage());
|
||||
}finally {
|
||||
tempFile.delete();
|
||||
}
|
||||
}
|
||||
|
||||
public JSONObject getCsvTagJson(String custIdc) {
|
||||
LambdaQueryWrapper<CustCsvTag> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CustCsvTag::getCustIdc, custIdc);
|
||||
queryWrapper.eq(CustCsvTag::getHeadId, SecurityUtils.getHeadId());
|
||||
CustCsvTag custCsvTag = custCsvTagMapper.selectOne(queryWrapper);
|
||||
if (Objects.isNull(custCsvTag)){
|
||||
return null;
|
||||
}
|
||||
MultipartFile fileFromOss = ossFileService.getFileFromOss(custCsvTag.getFileId());
|
||||
try {
|
||||
return objectMapper.readValue(fileFromOss.getBytes(), JSONObject.class);
|
||||
} catch (Exception e) {
|
||||
log.error("------------------------>CSV标签JSON读取出错:",e);
|
||||
throw new ServiceException("CSV标签JSON读取出错:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ruoyi.ibs.customerselect.service;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/8
|
||||
**/
|
||||
public interface GridFilterService {
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.ibs.customerselect.service;
|
||||
|
||||
import com.ruoyi.ibs.customerselect.domain.ListSelectByUser;
|
||||
import com.ruoyi.ibs.customerselect.domain.ListSelectForUser;
|
||||
import com.ruoyi.ibs.customerselect.domain.ListSelectForUserExportRetail;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
public interface IListSelectService {
|
||||
|
||||
|
||||
/**
|
||||
* 查询清单列表信息
|
||||
*
|
||||
* @return 清单信息
|
||||
*/
|
||||
public List<ListSelectByUser> getListInfoByUser(ListSelectByUser listSelectByUser);
|
||||
|
||||
|
||||
/**
|
||||
* 查询清单客户列表信息
|
||||
*
|
||||
* @return 清单信息
|
||||
*/
|
||||
public List<ListSelectForUser> getCustListInfoByUser(ListSelectForUser listSelectForUser);
|
||||
|
||||
/**
|
||||
* 查询导出客群清单
|
||||
*
|
||||
* @return 清单信息
|
||||
*/
|
||||
public void selectListExportByGroupId(HttpServletResponse response, String custPattern, String groupId, String campaignId, Long deptId, List<String> custIds);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ruoyi.ibs.customerselect.service;
|
||||
|
||||
import com.ruoyi.ibs.customerselect.domain.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMyCustomerService {
|
||||
|
||||
/**
|
||||
* 查询客户基本信息
|
||||
*
|
||||
* @return 客户基本信息
|
||||
*/
|
||||
public List<CustBaseInfo> selectSysCustomerBasedataList(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
Long countCustRetailByRegion(String code);
|
||||
|
||||
Long countCustBusinessByRegion(String code);
|
||||
|
||||
Long countCustMerchantByRegion(String code);
|
||||
|
||||
List<Long> countAllByCode(String code, String deptCode);
|
||||
|
||||
|
||||
/**
|
||||
* 我的客户数据新增修改
|
||||
*
|
||||
* @return 客户基本信息
|
||||
*/
|
||||
public int custInfoUpdate(CustInfoUpdateFromAnchor custInfoUpdateFromAnchor);
|
||||
|
||||
/**
|
||||
* 我的客户数据删除
|
||||
*
|
||||
* @return 客户基本信息
|
||||
*/
|
||||
public int custInfoDelete(CustInfoDeleteFromAnchor custInfoDeleteFromAnchor);
|
||||
|
||||
public List<CustBaseInfo> selectAddress(List<CustBaseInfo> list);
|
||||
|
||||
public CustListSearchVo selectCustomListSearchVo(CustBaseInfo sysCustomerBasedata);
|
||||
|
||||
MerchantMcspInfo selectmerchantMessage(String custId);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.ibs.customerselect.service.Impl;
|
||||
|
||||
import com.ruoyi.ibs.customerselect.service.GridFilterService;
|
||||
|
||||
/**
|
||||
* @Author 吴凯程
|
||||
* @Date 2025/5/8
|
||||
**/
|
||||
|
||||
public class GridFilterServiceImpl implements GridFilterService {
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user