0407-北仑客群+客群业绩统计+网格整体业绩修改+青田贷款客户经理
This commit is contained in:
@@ -9,7 +9,6 @@ import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.group.domain.dto.CustGroupMemberTemplate;
|
||||
import com.ruoyi.group.domain.dto.CustGroupQueryDTO;
|
||||
import com.ruoyi.group.domain.dto.GridImportDTO;
|
||||
import com.ruoyi.group.domain.entity.CustGroup;
|
||||
import com.ruoyi.group.domain.vo.CustGroupVO;
|
||||
import com.ruoyi.group.service.ICustGroupService;
|
||||
@@ -60,48 +59,31 @@ public class CustGroupController extends BaseController {
|
||||
return AjaxResult.success(custGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步创建客群(网格导入)
|
||||
*/
|
||||
@ApiOperation("异步创建客群(网格导入)")
|
||||
@Log(title = "客群管理-网格导入创建客群", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/createByGrid")
|
||||
public AjaxResult createCustGroupByGrid(@RequestBody @Valid GridImportDTO gridImportDTO) {
|
||||
String id = custGroupService.createCustGroupByGrid(gridImportDTO);
|
||||
return AjaxResult.success(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步创建客群(模板导入)
|
||||
* gridType、regionGridIds、drawGridIds 包含在 dto 中
|
||||
*/
|
||||
@ApiOperation("异步创建客群(模板导入)")
|
||||
@Log(title = "客群管理-异步创建客群", businessType = BusinessType.INSERT)
|
||||
@PostMapping(value = "/createByTemplate", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public AjaxResult createCustGroupByTemplate(@RequestPart("dto") @Valid String dtoJson,
|
||||
@RequestPart("file") MultipartFile file) {
|
||||
public AjaxResult createCustGroupByTemplate(
|
||||
@RequestPart("dto") @Valid String dtoJson,
|
||||
@RequestPart("file") MultipartFile file) {
|
||||
CustGroup custGroup = JSON.parseObject(dtoJson, CustGroup.class);
|
||||
return AjaxResult.success(custGroupService.createCustGroupByTemplate(custGroup, file));
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新客群(网格导入)
|
||||
*/
|
||||
@ApiOperation("更新客群(网格导入)")
|
||||
@Log(title = "客群管理-更新客群(网格导入)", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/updateByGrid")
|
||||
public AjaxResult updateCustGroupByGrid(@RequestBody @Valid GridImportDTO gridImportDTO) {
|
||||
String result = custGroupService.updateCustGroupByGrid(gridImportDTO);
|
||||
return AjaxResult.success(result);
|
||||
return AjaxResult.success("操作成功", custGroupService.createCustGroupByTemplate(custGroup, file));
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新客群(模板导入)
|
||||
* gridType、regionGridIds、drawGridIds 包含在 dto 中
|
||||
* file 参数可选:不传文件则只更新客群信息,传文件则追加客户
|
||||
*/
|
||||
@ApiOperation("更新客群(模板导入)")
|
||||
@Log(title = "客群管理-更新客群(模板导入)", businessType = BusinessType.UPDATE)
|
||||
@PostMapping(value = "/updateByTemplate", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public AjaxResult updateCustGroupByTemplate(@RequestPart("dto") @Valid String dtoJson,
|
||||
@RequestPart("file") MultipartFile file) {
|
||||
public AjaxResult updateCustGroupByTemplate(
|
||||
@RequestPart("dto") @Valid String dtoJson,
|
||||
@RequestPart(value = "file", required = false) MultipartFile file) {
|
||||
CustGroup custGroup = JSON.parseObject(dtoJson, CustGroup.class);
|
||||
return AjaxResult.success(custGroupService.updateCustGroupByTemplate(custGroup, file));
|
||||
}
|
||||
@@ -114,7 +96,7 @@ public class CustGroupController extends BaseController {
|
||||
@GetMapping("/createStatus/{id}")
|
||||
public AjaxResult getCreateStatus(@PathVariable Long id) {
|
||||
String status = custGroupService.getCreateStatus(id);
|
||||
return AjaxResult.success(status);
|
||||
return AjaxResult.success("操作成功", status);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -139,4 +121,15 @@ public class CustGroupController extends BaseController {
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* 获取所有已有的客群标签列表
|
||||
*/
|
||||
@ApiOperation("获取所有客群标签")
|
||||
@Log(title = "客群管理-获取客群标签")
|
||||
@GetMapping("/tags")
|
||||
public AjaxResult getAllGroupTags() {
|
||||
List<String> tags = custGroupService.getAllGroupTags();
|
||||
return AjaxResult.success(tags);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ public class CustGroupMemberController extends BaseController {
|
||||
@GetMapping("/list/{groupId}")
|
||||
public TableDataInfo listCustGroupMembers(@PathVariable Long groupId,
|
||||
CustGroupMemberQueryDTO dto) {
|
||||
startPage();
|
||||
// 注意:startPage()在Service内部调用,因为权限检查会先执行SQL导致分页失效
|
||||
List<CustGroupMemberVO> list = custGroupMemberService.listCustGroupMembers(groupId, dto);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.ruoyi.group.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.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountLingshou825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountLingshou825;
|
||||
import com.ruoyi.group.service.IGroupPerformanceService;
|
||||
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;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = "客群业绩统计")
|
||||
@RestController
|
||||
@RequestMapping("/group/performance")
|
||||
public class GroupPerformanceController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private IGroupPerformanceService groupPerformanceService;
|
||||
|
||||
@ApiOperation("查询零售客群业绩汇总列表")
|
||||
@GetMapping("/ls/list")
|
||||
public TableDataPageInfo<GroupCmpmCountLingshou825> selectLsCountList(String dt, String groupName) {
|
||||
Page<Object> page = startPage();
|
||||
List<GroupCmpmCountLingshou825> list = groupPerformanceService.selectLsCountList(dt, groupName);
|
||||
return getDataTable(list, page);
|
||||
}
|
||||
|
||||
@ApiOperation("查询公司客群业绩汇总列表")
|
||||
@GetMapping("/gs/list")
|
||||
public TableDataPageInfo<GroupCmpmCountGongsi825> selectGsCountList(String dt, String groupName) {
|
||||
Page<Object> page = startPage();
|
||||
List<GroupCmpmCountGongsi825> list = groupPerformanceService.selectGsCountList(dt, groupName);
|
||||
return getDataTable(list, page);
|
||||
}
|
||||
|
||||
@ApiOperation("查询零售客群客户明细")
|
||||
@GetMapping("/ls/custList")
|
||||
public TableDataPageInfo<GroupCustCountLingshou825> selectLsCustList(@RequestParam String groupId,
|
||||
String custName,
|
||||
String custIdc,
|
||||
String dt) {
|
||||
Page<Object> page = startPage();
|
||||
List<GroupCustCountLingshou825> list = groupPerformanceService.selectLsCustList(groupId, custName, custIdc, dt);
|
||||
return getDataTable(list, page);
|
||||
}
|
||||
|
||||
@ApiOperation("查询公司客群客户明细")
|
||||
@GetMapping("/gs/custList")
|
||||
public TableDataPageInfo<GroupCustCountGongsi825> selectGsCustList(@RequestParam String groupId,
|
||||
String custName,
|
||||
String socialCreditCode,
|
||||
String dt) {
|
||||
Page<Object> page = startPage();
|
||||
List<GroupCustCountGongsi825> list = groupPerformanceService.selectGsCustList(groupId, custName, socialCreditCode, dt);
|
||||
return getDataTable(list, page);
|
||||
}
|
||||
|
||||
@Log(title = "导出零售客群业绩汇总")
|
||||
@ApiOperation(value = "导出零售客群业绩汇总", produces = "application/octet-stream")
|
||||
@GetMapping("/exportLs")
|
||||
public void exportLs(HttpServletResponse response, String dt, String groupName) {
|
||||
try {
|
||||
ExcelUtil<GroupCmpmCountLingshou825> util = new ExcelUtil<>(GroupCmpmCountLingshou825.class);
|
||||
util.exportExcel(response, groupPerformanceService.selectLsCountList(dt, groupName), "零售客群业绩汇总");
|
||||
} catch (Exception e) {
|
||||
logger.error("导出零售客群业绩汇总失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "导出公司客群业绩汇总")
|
||||
@ApiOperation(value = "导出公司客群业绩汇总", produces = "application/octet-stream")
|
||||
@GetMapping("/exportGs")
|
||||
public void exportGs(HttpServletResponse response, String dt, String groupName) {
|
||||
try {
|
||||
ExcelUtil<GroupCmpmCountGongsi825> util = new ExcelUtil<>(GroupCmpmCountGongsi825.class);
|
||||
util.exportExcel(response, groupPerformanceService.selectGsCountList(dt, groupName), "公司客群业绩汇总");
|
||||
} catch (Exception e) {
|
||||
logger.error("导出公司客群业绩汇总失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "导出零售客群客户明细")
|
||||
@ApiOperation(value = "导出零售客群客户明细", produces = "application/octet-stream")
|
||||
@GetMapping("/exportLsCust")
|
||||
public void exportLsCust(HttpServletResponse response,
|
||||
@RequestParam String groupId,
|
||||
String custName,
|
||||
String custIdc,
|
||||
String dt) {
|
||||
try {
|
||||
ExcelUtil<GroupCustCountLingshou825> util = new ExcelUtil<>(GroupCustCountLingshou825.class);
|
||||
util.exportExcel(response, groupPerformanceService.selectLsCustList(groupId, custName, custIdc, dt), "零售客群客户明细");
|
||||
} catch (Exception e) {
|
||||
logger.error("导出零售客群客户明细失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "导出公司客群客户明细")
|
||||
@ApiOperation(value = "导出公司客群客户明细", produces = "application/octet-stream")
|
||||
@GetMapping("/exportGsCust")
|
||||
public void exportGsCust(HttpServletResponse response,
|
||||
@RequestParam String groupId,
|
||||
String custName,
|
||||
String socialCreditCode,
|
||||
String dt) {
|
||||
try {
|
||||
ExcelUtil<GroupCustCountGongsi825> util = new ExcelUtil<>(GroupCustCountGongsi825.class);
|
||||
util.exportExcel(response, groupPerformanceService.selectGsCustList(groupId, custName, socialCreditCode, dt), "公司客群客户明细");
|
||||
} catch (Exception e) {
|
||||
logger.error("导出公司客群客户明细失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,18 @@ import lombok.Data;
|
||||
@ApiModel(description = "客群客户查询条件")
|
||||
public class CustGroupMemberQueryDTO {
|
||||
|
||||
/**
|
||||
* 页码
|
||||
*/
|
||||
@ApiModelProperty(value = "页码", hidden = true)
|
||||
private Integer pageNum;
|
||||
|
||||
/**
|
||||
* 每页数量
|
||||
*/
|
||||
@ApiModelProperty(value = "每页数量", hidden = true)
|
||||
private Integer pageSize;
|
||||
|
||||
/**
|
||||
* 客户类型:0=个人, 1=商户, 2=企业
|
||||
*/
|
||||
@@ -24,4 +36,16 @@ public class CustGroupMemberQueryDTO {
|
||||
*/
|
||||
@ApiModelProperty(value = "客户姓名")
|
||||
private String custName;
|
||||
|
||||
/**
|
||||
* 客户经理柜员号
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理柜员号")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 客户经理姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理姓名")
|
||||
private String nickName;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,12 @@ public class CustGroupQueryDTO implements Serializable {
|
||||
@ApiModelProperty(value = "客群状态", name = "groupStatus")
|
||||
private String groupStatus;
|
||||
|
||||
/**
|
||||
* 客群标签(模糊匹配)
|
||||
*/
|
||||
@ApiModelProperty(value = "客群标签", name = "groupTags")
|
||||
private String groupTags;
|
||||
|
||||
/**
|
||||
* 视图类型:mine=我创建的,sharedToMe=下发给我的
|
||||
*/
|
||||
|
||||
@@ -38,10 +38,10 @@ public class CustGroup {
|
||||
private String groupMode;
|
||||
|
||||
/**
|
||||
* 创建方式:1=模板导入, 2=绩效网格, 3=地理网格, 4=自定义网格
|
||||
* 客群类型:0=零售类(个人+商户), 1=公司类(企业)
|
||||
*/
|
||||
@ApiModelProperty(value = "创建方式:1=模板导入, 2=绩效网格, 3=地理网格, 4=自定义网格", name = "createMode")
|
||||
private String createMode;
|
||||
@ApiModelProperty(value = "客群类型:0=零售类(个人+商户), 1=公司类(企业)", name = "groupType")
|
||||
private String groupType;
|
||||
|
||||
/**
|
||||
* 柜员号
|
||||
@@ -123,23 +123,18 @@ public class CustGroup {
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 网格类型:0=绩效网格, 1=地理网格, 2=绘制网格(动态客群使用)
|
||||
* 客群标签(多个标签用逗号分隔)
|
||||
*/
|
||||
@ApiModelProperty(value = "网格类型", name = "gridType")
|
||||
@ApiModelProperty(value = "客群标签(多个标签用逗号分隔)", name = "groupTags")
|
||||
@TableField("group_tags")
|
||||
private String groupTags;
|
||||
|
||||
/**
|
||||
* 网格类型:0=绩效网格, 1=地理网格, 2=绘制网格(管户关系来源)
|
||||
*/
|
||||
@ApiModelProperty(value = "网格类型(管户关系来源):0=绩效网格, 1=地理网格, 2=绘制网格", name = "gridType")
|
||||
private String gridType;
|
||||
|
||||
/**
|
||||
* 绩效业务类型:retail=零售, corporate=公司(动态客群使用)
|
||||
*/
|
||||
@ApiModelProperty(value = "绩效业务类型", name = "cmpmBizType")
|
||||
private String cmpmBizType;
|
||||
|
||||
/**
|
||||
* 客户经理列表(逗号分隔,动态客群使用)
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理列表", name = "gridUserNames")
|
||||
private String gridUserNames;
|
||||
|
||||
/**
|
||||
* 地理网格ID列表(逗号分隔,动态客群使用)
|
||||
*/
|
||||
|
||||
@@ -60,6 +60,48 @@ public class CustGroupMember {
|
||||
@ApiModelProperty(value = "统信码(商户/企业有)", name = "socialCreditCode")
|
||||
private String socialCreditCode;
|
||||
|
||||
/**
|
||||
* 客户经理柜员号
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理柜员号", name = "userName")
|
||||
@TableField("user_name")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 客户经理姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理姓名", name = "nickName")
|
||||
@TableField("nick_name")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 网点ID
|
||||
*/
|
||||
@ApiModelProperty(value = "网点ID", name = "outletId")
|
||||
@TableField("outlet_id")
|
||||
private Long outletId;
|
||||
|
||||
/**
|
||||
* 网点名称
|
||||
*/
|
||||
@ApiModelProperty(value = "网点名称", name = "outletName")
|
||||
@TableField("outlet_name")
|
||||
private String outletName;
|
||||
|
||||
/**
|
||||
* 支行ID
|
||||
*/
|
||||
@ApiModelProperty(value = "支行ID", name = "branchId")
|
||||
@TableField("branch_id")
|
||||
private Long branchId;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
@ApiModelProperty(value = "支行名称", name = "branchName")
|
||||
@TableField("branch_name")
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@@ -71,6 +113,12 @@ public class CustGroupMember {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 删除标识:0=正常, 1=删除
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
package com.ruoyi.group.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 客群业绩汇总统计_公司825
|
||||
*/
|
||||
@Data
|
||||
public class GroupCmpmCountGongsi825 implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Excel(name = "统计日期")
|
||||
private String dt;
|
||||
|
||||
private String groupId;
|
||||
|
||||
@Excel(name = "客群名称")
|
||||
private String groupName;
|
||||
|
||||
@Excel(name = "客群模式")
|
||||
private String groupMode;
|
||||
|
||||
@Excel(name = "归属支行")
|
||||
private String deptId;
|
||||
|
||||
@Excel(name = "归属支行名称")
|
||||
private String deptName;
|
||||
|
||||
@Excel(name = "归属网点")
|
||||
private String outletsId;
|
||||
|
||||
@Excel(name = "归属网点名称")
|
||||
private String outletsName;
|
||||
|
||||
@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 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 qfcdNum;
|
||||
|
||||
@Excel(name = "贴现业务数")
|
||||
private Integer txNum;
|
||||
|
||||
@Excel(name = "保函业务数")
|
||||
private Integer bhNum;
|
||||
|
||||
@Excel(name = "有效代发工资数")
|
||||
private Integer yxdfgzNum;
|
||||
|
||||
@Excel(name = "月均代发工资笔数")
|
||||
private String ustrCountPerM;
|
||||
|
||||
@Excel(name = "月均代发工资金额(元)")
|
||||
private String ustrBalM;
|
||||
|
||||
@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;
|
||||
|
||||
private String regionCode;
|
||||
|
||||
private String opsDept;
|
||||
|
||||
@Excel(name = "合同签约率")
|
||||
private String htqyRat;
|
||||
|
||||
@Excel(name = "合同签约数")
|
||||
private Integer htqyNum;
|
||||
|
||||
private String deptType;
|
||||
|
||||
@Excel(name = "近365天已走访人数")
|
||||
private String zf365cnt;
|
||||
|
||||
@Excel(name = "近180天已走访人数")
|
||||
private String zf180cnt;
|
||||
|
||||
@Excel(name = "近90天已走访人数")
|
||||
private String zf90cnt;
|
||||
|
||||
@Excel(name = "近30天已走访人数")
|
||||
private String zf30cnt;
|
||||
|
||||
@Excel(name = "近365天走访率")
|
||||
private String zf365rt;
|
||||
|
||||
@Excel(name = "近180天走访率")
|
||||
private String zf180rt;
|
||||
|
||||
@Excel(name = "近90天走访率")
|
||||
private String zf90rt;
|
||||
|
||||
@Excel(name = "近30天走访率")
|
||||
private String zf30rt;
|
||||
|
||||
@Excel(name = "建档率")
|
||||
private String phRat;
|
||||
|
||||
@Excel(name = "建档数")
|
||||
private String phNum;
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.ruoyi.group.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 客群业绩汇总统计_零售825
|
||||
*/
|
||||
@Data
|
||||
public class GroupCmpmCountLingshou825 implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Excel(name = "统计日期")
|
||||
private String dt;
|
||||
|
||||
private String groupId;
|
||||
|
||||
@Excel(name = "客群名称")
|
||||
private String groupName;
|
||||
|
||||
@Excel(name = "客群模式")
|
||||
private String groupMode;
|
||||
|
||||
@Excel(name = "归属支行机构号")
|
||||
private String deptId;
|
||||
|
||||
@Excel(name = "归属支行名称")
|
||||
private String deptName;
|
||||
|
||||
@Excel(name = "归属网点机构号")
|
||||
private String outletsId;
|
||||
|
||||
@Excel(name = "归属网点名称")
|
||||
private String outletsName;
|
||||
|
||||
@Excel(name = "归属客户经理")
|
||||
private String userName;
|
||||
|
||||
@Excel(name = "入格客户数")
|
||||
private Integer custNum;
|
||||
|
||||
@Excel(name = "近365天已走访人数")
|
||||
private String zf365cnt;
|
||||
|
||||
@Excel(name = "近180天已走访人数")
|
||||
private String zf180cnt;
|
||||
|
||||
@Excel(name = "近90天已走访人数")
|
||||
private String zf90cnt;
|
||||
|
||||
@Excel(name = "近30天已走访人数")
|
||||
private String zf30cnt;
|
||||
|
||||
@Excel(name = "近365天走访率")
|
||||
private String zf365rt;
|
||||
|
||||
@Excel(name = "近180天走访率")
|
||||
private String zf180rt;
|
||||
|
||||
@Excel(name = "近90天走访率")
|
||||
private String zf90rt;
|
||||
|
||||
@Excel(name = "近30天走访率")
|
||||
private String zf30rt;
|
||||
|
||||
@Excel(name = "活期存款余额(元)")
|
||||
private String curBalD;
|
||||
|
||||
@Excel(name = "授信率(%)")
|
||||
private String sxRat;
|
||||
|
||||
@Excel(name = "用信覆盖率")
|
||||
private String yxRat;
|
||||
|
||||
@Excel(name = "授信户数")
|
||||
private Integer sxNum;
|
||||
|
||||
@Excel(name = "用信户数")
|
||||
private Integer yxNum;
|
||||
|
||||
@Excel(name = "授信金额(合同)")
|
||||
private String sxBal;
|
||||
|
||||
@Excel(name = "贷款余额(元)")
|
||||
private String balLoan;
|
||||
|
||||
@Excel(name = "贷款年日均(元)")
|
||||
private String loanAve;
|
||||
|
||||
@Excel(name = "合同签约率(%)")
|
||||
private String yxhtRat;
|
||||
|
||||
@Excel(name = "代扣电费覆盖率(%)")
|
||||
private String dianRat;
|
||||
|
||||
@Excel(name = "代扣水费率(%)")
|
||||
private String shuiRat;
|
||||
|
||||
@Excel(name = "代扣税费率(%)")
|
||||
private String taxRat;
|
||||
|
||||
@Excel(name = "开户率(%)")
|
||||
private String openRat;
|
||||
|
||||
@Excel(name = "合同签约客户数")
|
||||
private Integer yxhtNum;
|
||||
|
||||
@Excel(name = "代扣电费客户数")
|
||||
private Integer dianNum;
|
||||
|
||||
@Excel(name = "代扣水费客户数")
|
||||
private Integer shuiNum;
|
||||
|
||||
@Excel(name = "代扣税费数")
|
||||
private Integer taxNum;
|
||||
|
||||
@Excel(name = "开户数")
|
||||
private Integer openNum;
|
||||
|
||||
@Excel(name = "存款余额(元)")
|
||||
private String depBal;
|
||||
|
||||
@Excel(name = "财富余额(元)")
|
||||
private String finBal;
|
||||
|
||||
@Excel(name = "个人核心客户数")
|
||||
private Integer grhxNum;
|
||||
|
||||
@Excel(name = "财富有效客户数")
|
||||
private Integer cfyxNum;
|
||||
|
||||
@Excel(name = "有效信用卡数")
|
||||
private Integer yxxykNum;
|
||||
|
||||
@Excel(name = "有效社保卡户数")
|
||||
private Integer yxsbkNum;
|
||||
|
||||
@Excel(name = "二换三社保卡户数")
|
||||
private Integer twoTo3SbkNum;
|
||||
|
||||
@Excel(name = "养老金迁移至社保卡户数")
|
||||
private Integer yljToSbkNum;
|
||||
|
||||
@Excel(name = "丰收互联客户数")
|
||||
private Integer fshlNum;
|
||||
|
||||
@Excel(name = "有效收单商户")
|
||||
private Integer yxsdNum;
|
||||
|
||||
@Excel(name = "核心收单户数")
|
||||
private String hxsdNum;
|
||||
|
||||
private String regionCode;
|
||||
|
||||
private String opsDept;
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.ruoyi.group.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 客群客户明细统计_公司825
|
||||
*/
|
||||
@Data
|
||||
public class GroupCustCountGongsi825 implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String groupId;
|
||||
|
||||
@Excel(name = "客户名称")
|
||||
private String custName;
|
||||
|
||||
@Excel(name = "客户证件号")
|
||||
private String socialCreditCode;
|
||||
|
||||
@Excel(name = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
@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 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;
|
||||
|
||||
private String regionCode;
|
||||
|
||||
private String opsDept;
|
||||
|
||||
private String custType;
|
||||
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isHtqy;
|
||||
|
||||
@Excel(name = "归属支行名称")
|
||||
private String deptName;
|
||||
|
||||
@Excel(name = "归属网点id")
|
||||
private String outletsId;
|
||||
|
||||
@Excel(name = "归属网点名称")
|
||||
private String outletsName;
|
||||
|
||||
@Excel(name = "归属客户经理")
|
||||
private String userName;
|
||||
|
||||
@Excel(name = "归属支行id")
|
||||
private String deptId;
|
||||
|
||||
@Excel(name = "近365天有无走访")
|
||||
private String is365zf;
|
||||
|
||||
@Excel(name = "近180天有无走访")
|
||||
private String is180zf;
|
||||
|
||||
@Excel(name = "近90天有无走访")
|
||||
private String is90zf;
|
||||
|
||||
@Excel(name = "近30天有无走访")
|
||||
private String is30zf;
|
||||
|
||||
private String dt;
|
||||
|
||||
@Excel(name = "是否建档")
|
||||
private String isPh;
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.ruoyi.group.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 客群客户明细统计_零售825
|
||||
*/
|
||||
@Data
|
||||
public class GroupCustCountLingshou825 implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String groupId;
|
||||
|
||||
@Excel(name = "客户名称")
|
||||
private String custName;
|
||||
|
||||
@Excel(name = "客户证件号")
|
||||
private String custIdc;
|
||||
|
||||
@Excel(name = "客户内码")
|
||||
private String custIsn;
|
||||
|
||||
@Excel(name = "活期存款余额")
|
||||
private String curBalD;
|
||||
|
||||
@Excel(name = "贷款余额")
|
||||
private String balLoan;
|
||||
|
||||
@Excel(name = "贷款年日均")
|
||||
private String loanAve;
|
||||
|
||||
@Excel(name = "是否授信")
|
||||
private String isSx;
|
||||
|
||||
@Excel(name = "是否用信")
|
||||
private String isYx;
|
||||
|
||||
@Excel(name = "授信金额")
|
||||
private String sxBal;
|
||||
|
||||
@Excel(name = "是否合同签约")
|
||||
private String isYxht;
|
||||
|
||||
@Excel(name = "是否持有信用卡")
|
||||
private String isXyk;
|
||||
|
||||
@Excel(name = "是否开通丰收互联")
|
||||
private String fshl;
|
||||
|
||||
@Excel(name = "是否办理收单")
|
||||
private String isSd;
|
||||
|
||||
@Excel(name = "是否代扣电费")
|
||||
private String dian;
|
||||
|
||||
@Excel(name = "是否代扣水费")
|
||||
private String shui;
|
||||
|
||||
@Excel(name = "是否代扣税费")
|
||||
private String tax;
|
||||
|
||||
@Excel(name = "开户数")
|
||||
private String openNum;
|
||||
|
||||
@Excel(name = "存款余额")
|
||||
private String depBal;
|
||||
|
||||
@Excel(name = "财富余额")
|
||||
private String finBal;
|
||||
|
||||
@Excel(name = "是否个人核心客户")
|
||||
private String isGrhx;
|
||||
|
||||
@Excel(name = "是否财富有效客户")
|
||||
private String isCfyx;
|
||||
|
||||
@Excel(name = "是否有效社保卡客户")
|
||||
private String isYxsbk;
|
||||
|
||||
@Excel(name = "是否二换三社保卡")
|
||||
private String is2to3Sbk;
|
||||
|
||||
@Excel(name = "是否养老金迁移至社保卡")
|
||||
private String isYljToSbk;
|
||||
|
||||
private String regionCode;
|
||||
|
||||
private String opsDept;
|
||||
|
||||
private String custType;
|
||||
|
||||
@Excel(name = "近365天有无走访")
|
||||
private String is365zf;
|
||||
|
||||
@Excel(name = "近180天有无走访")
|
||||
private String is180zf;
|
||||
|
||||
@Excel(name = "近90天有无走访")
|
||||
private String is90zf;
|
||||
|
||||
@Excel(name = "近30天有无走访")
|
||||
private String is30zf;
|
||||
|
||||
private String dt;
|
||||
|
||||
@Excel(name = "是否核心收单")
|
||||
private String isHxsd;
|
||||
}
|
||||
@@ -57,10 +57,52 @@ public class CustGroupMemberVO {
|
||||
@ApiModelProperty(value = "统信码(商户/企业有)", name = "socialCreditCode")
|
||||
private String socialCreditCode;
|
||||
|
||||
/**
|
||||
* 客户经理柜员号
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理柜员号", name = "userName")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 客户经理姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理姓名", name = "nickName")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 网点ID
|
||||
*/
|
||||
@ApiModelProperty(value = "网点ID", name = "outletId")
|
||||
private Long outletId;
|
||||
|
||||
/**
|
||||
* 网点名称
|
||||
*/
|
||||
@ApiModelProperty(value = "网点名称", name = "outletName")
|
||||
private String outletName;
|
||||
|
||||
/**
|
||||
* 支行ID
|
||||
*/
|
||||
@ApiModelProperty(value = "支行ID", name = "branchId")
|
||||
private Long branchId;
|
||||
|
||||
/**
|
||||
* 支行名称
|
||||
*/
|
||||
@ApiModelProperty(value = "支行名称", name = "branchName")
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建时间", name = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 存量状态:true=存量客户(系统存在),false=非存量客户(系统不存在)
|
||||
*/
|
||||
@ApiModelProperty(value = "存量状态:true=存量客户,false=非存量客户", name = "isExisting")
|
||||
private Boolean isExisting;
|
||||
}
|
||||
@@ -35,10 +35,10 @@ public class CustGroupVO {
|
||||
private String groupMode;
|
||||
|
||||
/**
|
||||
* 创建方式:1=模板导入, 2=绩效网格, 3=地理网格, 4=自定义网格
|
||||
* 客群类型:0=零售类(个人+商户), 1=公司类(企业)
|
||||
*/
|
||||
@ApiModelProperty(value = "创建方式:1=模板导入, 2=绩效网格, 3=地理网格, 4=自定义网格", name = "createMode")
|
||||
private String createMode;
|
||||
@ApiModelProperty(value = "客群类型:0=零售类(个人+商户), 1=公司类(企业)", name = "groupType")
|
||||
private String groupType;
|
||||
|
||||
/**
|
||||
* 柜员号
|
||||
@@ -114,6 +114,12 @@ public class CustGroupVO {
|
||||
@ApiModelProperty(value = "备注", name = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 客群标签(多个标签用逗号分隔)
|
||||
*/
|
||||
@ApiModelProperty(value = "客群标签(多个标签用逗号分隔)", name = "groupTags")
|
||||
private String groupTags;
|
||||
|
||||
/**
|
||||
* 有效期截止时间
|
||||
*/
|
||||
@@ -128,23 +134,11 @@ public class CustGroupVO {
|
||||
private String createStatus;
|
||||
|
||||
/**
|
||||
* 网格类型:0=绩效网格, 1=地理网格, 2=绘制网格
|
||||
* 网格类型(管户关系来源):0=绩效网格, 1=地理网格, 2=绘制网格
|
||||
*/
|
||||
@ApiModelProperty(value = "网格类型", name = "gridType")
|
||||
@ApiModelProperty(value = "网格类型(管户关系来源):0=绩效网格, 1=地理网格, 2=绘制网格", name = "gridType")
|
||||
private String gridType;
|
||||
|
||||
/**
|
||||
* 绩效业务类型:retail=零售, corporate=公司
|
||||
*/
|
||||
@ApiModelProperty(value = "绩效业务类型", name = "cmpmBizType")
|
||||
private String cmpmBizType;
|
||||
|
||||
/**
|
||||
* 客户经理列表(逗号分隔)
|
||||
*/
|
||||
@ApiModelProperty(value = "客户经理列表", name = "gridUserNames")
|
||||
private String gridUserNames;
|
||||
|
||||
/**
|
||||
* 地理网格ID列表(逗号分隔)
|
||||
*/
|
||||
|
||||
@@ -57,4 +57,11 @@ public interface CustGroupMapper extends BaseMapper<CustGroup> {
|
||||
Long countVisibleCustGroup(@Param("id") Long id,
|
||||
@Param("userName") String userName,
|
||||
@Param("deptId") String deptId);
|
||||
|
||||
/**
|
||||
* 查询所有已有的客群标签
|
||||
*
|
||||
* @return 标签列表
|
||||
*/
|
||||
List<String> selectAllGroupTags();
|
||||
}
|
||||
|
||||
@@ -33,4 +33,29 @@ public interface CustGroupMemberMapper extends BaseMapper<CustGroupMember> {
|
||||
* @param memberList 客户列表
|
||||
*/
|
||||
void batchInsertMembers(@Param("list") List<CustGroupMember> memberList);
|
||||
|
||||
/**
|
||||
* 批量查询个人客户是否存在(根据客户号+身份证号)
|
||||
*
|
||||
* @param custIds 客户号列表
|
||||
* @return 存在的客户号列表
|
||||
*/
|
||||
List<String> selectExistingRetailCustIds(@Param("list") List<String> custIds);
|
||||
|
||||
/**
|
||||
* 批量查询商户客户是否存在(根据客户号+统信码)
|
||||
*
|
||||
* @param custIds 客户号列表
|
||||
* @return 存在的客户号列表
|
||||
*/
|
||||
List<String> selectExistingMerchantCustIds(@Param("list") List<String> custIds);
|
||||
|
||||
/**
|
||||
* 批量查询企业客户是否存在(根据客户号+统信码)
|
||||
*
|
||||
* @param custIds 客户号列表
|
||||
* @return 存在的客户号列表
|
||||
*/
|
||||
List<String> selectExistingBusinessCustIds(@Param("list") List<String> custIds);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.group.mapper;
|
||||
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountLingshou825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountLingshou825;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface GroupPerformanceMapper {
|
||||
|
||||
List<GroupCmpmCountLingshou825> selectLsCountList(HashMap<String, Object> paramMap);
|
||||
|
||||
List<GroupCmpmCountGongsi825> selectGsCountList(HashMap<String, Object> paramMap);
|
||||
|
||||
List<GroupCustCountLingshou825> selectLsCustList(HashMap<String, Object> paramMap);
|
||||
|
||||
List<GroupCustCountGongsi825> selectGsCustList(HashMap<String, Object> paramMap);
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.ruoyi.group.service;
|
||||
|
||||
import com.ruoyi.group.domain.dto.CustGroupQueryDTO;
|
||||
import com.ruoyi.group.domain.dto.GridImportDTO;
|
||||
import com.ruoyi.group.domain.entity.CustGroup;
|
||||
import com.ruoyi.group.domain.vo.CustGroupVO;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
@@ -17,88 +16,56 @@ public interface ICustGroupService {
|
||||
|
||||
/**
|
||||
* 查询客群列表
|
||||
*
|
||||
* @param dto 查询条件
|
||||
* @return 客群VO列表
|
||||
*/
|
||||
List<CustGroupVO> listCustGroup(CustGroupQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 根据ID查询客群详情
|
||||
*
|
||||
* @param id 客群ID
|
||||
* @return 客群VO
|
||||
*/
|
||||
CustGroupVO getCustGroup(Long id);
|
||||
|
||||
/**
|
||||
* 校验当前用户是否有客群查看权限
|
||||
*
|
||||
* @param id 客群ID
|
||||
*/
|
||||
void checkCustGroupViewPermission(Long id);
|
||||
|
||||
/**
|
||||
* 异步创建客群(模板导入)
|
||||
* gridType、regionGridIds、drawGridIds 从 custGroup 中获取
|
||||
*
|
||||
* @param custGroup 客群实体
|
||||
* @param file Excel文件
|
||||
* @param custGroup 客群实体(包含 gridType、regionGridIds、drawGridIds)
|
||||
* @param file Excel文件
|
||||
* @return 客群ID
|
||||
*/
|
||||
String createCustGroupByTemplate(CustGroup custGroup, MultipartFile file);
|
||||
|
||||
/**
|
||||
* 异步创建客群(网格导入)
|
||||
*
|
||||
* @param gridImportDTO 网格导入条件
|
||||
* @return 客群ID
|
||||
*/
|
||||
String createCustGroupByGrid(GridImportDTO gridImportDTO);
|
||||
|
||||
/**
|
||||
* 更新客群(网格导入)
|
||||
*
|
||||
* @param gridImportDTO 网格导入条件
|
||||
* @return 结果消息
|
||||
*/
|
||||
String updateCustGroupByGrid(GridImportDTO gridImportDTO);
|
||||
|
||||
/**
|
||||
* 更新客群(模板导入)
|
||||
* gridType、regionGridIds、drawGridIds 从 custGroup 中获取
|
||||
*
|
||||
* @param custGroup 客群实体
|
||||
* @param file Excel文件
|
||||
* @param custGroup 客群实体(包含 gridType、regionGridIds、drawGridIds)
|
||||
* @param file Excel文件
|
||||
* @return 结果消息
|
||||
*/
|
||||
String updateCustGroupByTemplate(CustGroup custGroup, MultipartFile file);
|
||||
|
||||
/**
|
||||
* 删除客群
|
||||
*
|
||||
* @param idList 客群ID列表
|
||||
* @return 结果消息
|
||||
*/
|
||||
String deleteCustGroup(List<Long> idList);
|
||||
|
||||
/**
|
||||
* 检查客群名称是否存在
|
||||
*
|
||||
* @param groupName 客群名称
|
||||
* @return true=存在, false=不存在
|
||||
*/
|
||||
boolean checkGroupNameExist(String groupName);
|
||||
|
||||
/**
|
||||
* 查询客群创建状态
|
||||
*
|
||||
* @param id 客群ID
|
||||
* @return 创建状态:0=创建中, 1=创建成功, 2=创建失败
|
||||
*/
|
||||
String getCreateStatus(Long id);
|
||||
|
||||
/**
|
||||
* 更新动态客群(定时任务调用)
|
||||
* 根据原始导入条件重新查询并更新客户列表
|
||||
*/
|
||||
void updateDynamicCustGroups();
|
||||
|
||||
@@ -107,4 +74,11 @@ public interface ICustGroupService {
|
||||
*/
|
||||
void checkAndDisableExpiredGroups();
|
||||
|
||||
/**
|
||||
* 获取所有已有的客群标签列表
|
||||
*
|
||||
* @return 标签列表
|
||||
*/
|
||||
List<String> getAllGroupTags();
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.group.service;
|
||||
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountLingshou825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountLingshou825;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IGroupPerformanceService {
|
||||
|
||||
List<GroupCmpmCountLingshou825> selectLsCountList(String dt, String groupName);
|
||||
|
||||
List<GroupCmpmCountGongsi825> selectGsCountList(String dt, String groupName);
|
||||
|
||||
List<GroupCustCountLingshou825> selectLsCustList(String groupId, String custName, String custIdc, String dt);
|
||||
|
||||
List<GroupCustCountGongsi825> selectGsCustList(String groupId, String custName, String socialCreditCode, String dt);
|
||||
}
|
||||
@@ -10,11 +10,16 @@ import com.ruoyi.group.mapper.CustGroupMapper;
|
||||
import com.ruoyi.group.mapper.CustGroupMemberMapper;
|
||||
import com.ruoyi.group.service.ICustGroupService;
|
||||
import com.ruoyi.group.service.ICustGroupMemberService;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 客群客户服务实现类
|
||||
@@ -36,7 +41,64 @@ public class CustGroupMemberServiceImpl implements ICustGroupMemberService {
|
||||
@Override
|
||||
public List<CustGroupMemberVO> listCustGroupMembers(Long groupId, CustGroupMemberQueryDTO dto) {
|
||||
custGroupService.checkCustGroupViewPermission(groupId);
|
||||
return custGroupMemberMapper.selectCustGroupMemberList(groupId, dto);
|
||||
// 在权限检查之后启动分页,避免权限检查SQL消耗分页设置
|
||||
int pageNum = dto.getPageNum() != null ? dto.getPageNum() : 1;
|
||||
int pageSize = dto.getPageSize() != null ? dto.getPageSize() : 10;
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
// 1. 查询客群成员列表(分页)
|
||||
List<CustGroupMemberVO> memberList = custGroupMemberMapper.selectCustGroupMemberList(groupId, dto);
|
||||
if (memberList == null || memberList.isEmpty()) {
|
||||
return memberList;
|
||||
}
|
||||
|
||||
// 2. 按客户类型分组,批量查询存量状态
|
||||
// 个人客户
|
||||
List<String> retailCustIds = memberList.stream()
|
||||
.filter(m -> "0".equals(m.getCustType()))
|
||||
.map(CustGroupMemberVO::getCustId)
|
||||
.collect(Collectors.toList());
|
||||
// 商户客户
|
||||
List<String> merchantCustIds = memberList.stream()
|
||||
.filter(m -> "1".equals(m.getCustType()))
|
||||
.map(CustGroupMemberVO::getCustId)
|
||||
.collect(Collectors.toList());
|
||||
// 企业客户
|
||||
List<String> businessCustIds = memberList.stream()
|
||||
.filter(m -> "2".equals(m.getCustType()))
|
||||
.map(CustGroupMemberVO::getCustId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 3. 批量查询各类型存量客户
|
||||
Set<String> existingRetailCustIds = new HashSet<>();
|
||||
Set<String> existingMerchantCustIds = new HashSet<>();
|
||||
Set<String> existingBusinessCustIds = new HashSet<>();
|
||||
|
||||
if (!retailCustIds.isEmpty()) {
|
||||
existingRetailCustIds.addAll(custGroupMemberMapper.selectExistingRetailCustIds(retailCustIds));
|
||||
}
|
||||
if (!merchantCustIds.isEmpty()) {
|
||||
existingMerchantCustIds.addAll(custGroupMemberMapper.selectExistingMerchantCustIds(merchantCustIds));
|
||||
}
|
||||
if (!businessCustIds.isEmpty()) {
|
||||
existingBusinessCustIds.addAll(custGroupMemberMapper.selectExistingBusinessCustIds(businessCustIds));
|
||||
}
|
||||
|
||||
// 4. 填充存量状态
|
||||
for (CustGroupMemberVO member : memberList) {
|
||||
String custType = member.getCustType();
|
||||
String custId = member.getCustId();
|
||||
if ("0".equals(custType)) {
|
||||
member.setIsExisting(existingRetailCustIds.contains(custId));
|
||||
} else if ("1".equals(custType)) {
|
||||
member.setIsExisting(existingMerchantCustIds.contains(custId));
|
||||
} else if ("2".equals(custType)) {
|
||||
member.setIsExisting(existingBusinessCustIds.contains(custId));
|
||||
} else {
|
||||
member.setIsExisting(false);
|
||||
}
|
||||
}
|
||||
|
||||
return memberList;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.group.service.impl;
|
||||
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCmpmCountLingshou825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountGongsi825;
|
||||
import com.ruoyi.group.domain.entity.GroupCustCountLingshou825;
|
||||
import com.ruoyi.group.mapper.GroupPerformanceMapper;
|
||||
import com.ruoyi.group.service.IGroupPerformanceService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class GroupPerformanceServiceImpl implements IGroupPerformanceService {
|
||||
|
||||
@Resource
|
||||
private GroupPerformanceMapper groupPerformanceMapper;
|
||||
|
||||
@Override
|
||||
public List<GroupCmpmCountLingshou825> selectLsCountList(String dt, String groupName) {
|
||||
return groupPerformanceMapper.selectLsCountList(buildLsCountParams(dt, groupName));
|
||||
}
|
||||
|
||||
private HashMap<String, Object> buildLsCountParams(String dt, String groupName) {
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
if (SecurityUtils.userRole().equals("branch")) {
|
||||
paramMap.put("isBranch", true);
|
||||
}
|
||||
if (SecurityUtils.userRole().equals("outlet")) {
|
||||
paramMap.put("isOutlet", true);
|
||||
}
|
||||
if (SecurityUtils.userRole().equals("manager")) {
|
||||
paramMap.put("isManager", true);
|
||||
}
|
||||
paramMap.put("deptId", SecurityUtils.getDeptId());
|
||||
paramMap.put("userName", SecurityUtils.getUsername());
|
||||
paramMap.put("dt", dt);
|
||||
paramMap.put("groupName", groupName);
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GroupCmpmCountGongsi825> selectGsCountList(String dt, String groupName) {
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("userRole", "head");
|
||||
if (SecurityUtils.userRole().equals("branch")) {
|
||||
paramMap.put("userRole", "branch");
|
||||
paramMap.put("isBranch", true);
|
||||
}
|
||||
if (SecurityUtils.userRole().equals("outlet")) {
|
||||
paramMap.put("userRole", "outlet");
|
||||
paramMap.put("isOutlet", true);
|
||||
}
|
||||
if (SecurityUtils.userRole().equals("manager")) {
|
||||
paramMap.put("userRole", "manager");
|
||||
paramMap.put("isManager", true);
|
||||
}
|
||||
paramMap.put("deptId", SecurityUtils.getDeptId());
|
||||
paramMap.put("userName", SecurityUtils.getUsername());
|
||||
paramMap.put("dt", dt);
|
||||
paramMap.put("groupName", groupName);
|
||||
return groupPerformanceMapper.selectGsCountList(paramMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GroupCustCountLingshou825> selectLsCustList(String groupId, String custName, String custIdc, String dt) {
|
||||
return groupPerformanceMapper.selectLsCustList(buildLsCustParams(groupId, custName, custIdc, dt));
|
||||
}
|
||||
|
||||
private HashMap<String, Object> buildLsCustParams(String groupId, String custName, String custIdc, String dt) {
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("deptId", SecurityUtils.getDeptId());
|
||||
paramMap.put("userName", SecurityUtils.getUsername());
|
||||
paramMap.put("groupId", groupId);
|
||||
paramMap.put("custName", custName);
|
||||
paramMap.put("custIdc", custIdc);
|
||||
paramMap.put("dt", dt);
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GroupCustCountGongsi825> selectGsCustList(String groupId, String custName, String socialCreditCode, String dt) {
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
if (SecurityUtils.userRole().equals("branch")) {
|
||||
paramMap.put("isBranch", true);
|
||||
}
|
||||
if (SecurityUtils.userRole().equals("outlet")) {
|
||||
paramMap.put("isOutlet", true);
|
||||
}
|
||||
if (SecurityUtils.userRole().equals("manager")) {
|
||||
paramMap.put("isManager", true);
|
||||
}
|
||||
paramMap.put("deptId", SecurityUtils.getDeptId());
|
||||
paramMap.put("userName", SecurityUtils.getUsername());
|
||||
paramMap.put("groupId", groupId);
|
||||
paramMap.put("custName", custName);
|
||||
paramMap.put("socialCreditCode", socialCreditCode);
|
||||
paramMap.put("dt", dt);
|
||||
return groupPerformanceMapper.selectGsCustList(paramMap);
|
||||
}
|
||||
}
|
||||
@@ -40,13 +40,14 @@
|
||||
cg.id,
|
||||
cg.group_name,
|
||||
cg.group_mode,
|
||||
cg.create_mode,
|
||||
cg.group_type,
|
||||
cg.user_name,
|
||||
cg.nick_name,
|
||||
cg.dept_id,
|
||||
cg.share_enabled,
|
||||
cg.share_dept_ids,
|
||||
cg.group_status,
|
||||
cg.group_tags,
|
||||
cg.create_by,
|
||||
cg.create_time,
|
||||
cg.update_by,
|
||||
@@ -65,12 +66,12 @@
|
||||
<if test="dto.groupMode != null and dto.groupMode != ''">
|
||||
AND cg.group_mode = #{dto.groupMode}
|
||||
</if>
|
||||
<if test="dto.createMode != null and dto.createMode != ''">
|
||||
AND cg.create_mode = #{dto.createMode}
|
||||
</if>
|
||||
<if test="dto.groupStatus != null and dto.groupStatus != ''">
|
||||
AND cg.group_status = #{dto.groupStatus}
|
||||
</if>
|
||||
<if test="dto.groupTags != null and dto.groupTags != ''">
|
||||
AND cg.group_tags LIKE CONCAT('%', #{dto.groupTags}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY cg.create_time DESC
|
||||
</select>
|
||||
@@ -80,13 +81,14 @@
|
||||
cg.id,
|
||||
cg.group_name,
|
||||
cg.group_mode,
|
||||
cg.create_mode,
|
||||
cg.group_type,
|
||||
cg.user_name,
|
||||
cg.nick_name,
|
||||
cg.dept_id,
|
||||
cg.share_enabled,
|
||||
cg.share_dept_ids,
|
||||
cg.group_status,
|
||||
cg.group_tags,
|
||||
cg.valid_time,
|
||||
cg.create_by,
|
||||
cg.create_time,
|
||||
@@ -95,8 +97,6 @@
|
||||
cg.remark,
|
||||
cg.create_status,
|
||||
cg.grid_type,
|
||||
cg.cmpm_biz_type,
|
||||
cg.grid_user_names,
|
||||
cg.region_grid_ids,
|
||||
cg.draw_grid_ids,
|
||||
(SELECT COUNT(*) FROM ibs_cust_group_member cgm WHERE cgm.group_id = cg.id AND cgm.del_flag = '0') AS cust_count
|
||||
@@ -116,4 +116,14 @@
|
||||
<include refid="custGroupVisibleBaseCondition"/>
|
||||
</select>
|
||||
|
||||
<select id="selectAllGroupTags" resultType="java.lang.String">
|
||||
SELECT DISTINCT group_tags
|
||||
FROM ibs_cust_group
|
||||
WHERE del_flag = '0'
|
||||
AND create_status = '1'
|
||||
AND group_tags IS NOT NULL
|
||||
AND group_tags != ''
|
||||
ORDER BY group_tags
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
cgm.cust_name,
|
||||
cgm.cust_idc,
|
||||
cgm.social_credit_code,
|
||||
cgm.user_name,
|
||||
cgm.nick_name,
|
||||
cgm.outlet_id,
|
||||
cgm.outlet_name,
|
||||
cgm.branch_id,
|
||||
cgm.branch_name,
|
||||
cgm.create_time
|
||||
FROM ibs_cust_group_member cgm
|
||||
<where>
|
||||
@@ -24,17 +30,66 @@
|
||||
<if test="dto != null and dto.custName != null and dto.custName != ''">
|
||||
AND cgm.cust_name LIKE CONCAT('%', #{dto.custName}, '%')
|
||||
</if>
|
||||
<if test="dto != null and dto.userName != null and dto.userName != ''">
|
||||
AND cgm.user_name = #{dto.userName}
|
||||
</if>
|
||||
<if test="dto != null and dto.nickName != null and dto.nickName != ''">
|
||||
AND cgm.nick_name LIKE CONCAT('%', #{dto.nickName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY cgm.create_time ASC
|
||||
</select>
|
||||
|
||||
<!-- 批量查询个人客户是否存在 -->
|
||||
<select id="selectExistingRetailCustIds" resultType="String">
|
||||
SELECT DISTINCT t.cust_id
|
||||
FROM ibs_cust_group_member t
|
||||
INNER JOIN cust_info_retail c ON t.cust_id = c.cust_id AND t.cust_idc = c.cust_idc
|
||||
WHERE t.del_flag = '0'
|
||||
AND t.cust_type = '0'
|
||||
AND t.cust_id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<!-- 批量查询商户客户是否存在 -->
|
||||
<select id="selectExistingMerchantCustIds" resultType="String">
|
||||
SELECT DISTINCT t.cust_id
|
||||
FROM ibs_cust_group_member t
|
||||
INNER JOIN cust_info_merchant c ON t.cust_id = c.cust_id AND t.social_credit_code = c.social_credit_code
|
||||
WHERE t.del_flag = '0'
|
||||
AND t.cust_type = '1'
|
||||
AND t.cust_id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<!-- 批量查询企业客户是否存在 -->
|
||||
<select id="selectExistingBusinessCustIds" resultType="String">
|
||||
SELECT DISTINCT t.cust_id
|
||||
FROM ibs_cust_group_member t
|
||||
INNER JOIN cust_info_business c ON t.cust_id = c.cust_id AND t.social_credit_code = c.social_credit_code
|
||||
WHERE t.del_flag = '0'
|
||||
AND t.cust_type = '2'
|
||||
AND t.cust_id IN
|
||||
<foreach collection="list" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<!-- 批量插入客群客户(INSERT IGNORE,遇到重复键自动跳过) -->
|
||||
<insert id="batchInsertMembers">
|
||||
INSERT IGNORE INTO ibs_cust_group_member
|
||||
(group_id, cust_type, cust_id, cust_name, cust_idc, social_credit_code, create_by, create_time, del_flag, manual_remove)
|
||||
(group_id, cust_type, cust_id, cust_name, cust_idc, social_credit_code,
|
||||
user_name, nick_name, outlet_id, outlet_name, branch_id, branch_name,
|
||||
create_by, create_time, del_flag, manual_remove)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" index="index" separator=",">
|
||||
(#{item.groupId}, #{item.custType}, #{item.custId}, #{item.custName}, #{item.custIdc}, #{item.socialCreditCode}, #{item.createBy}, NOW(), '0', '0')
|
||||
(#{item.groupId}, #{item.custType}, #{item.custId}, #{item.custName}, #{item.custIdc}, #{item.socialCreditCode},
|
||||
#{item.userName}, #{item.nickName}, #{item.outletId}, #{item.outletName}, #{item.branchId}, #{item.branchName},
|
||||
#{item.createBy}, NOW(), '0', '0')
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.group.mapper.GroupPerformanceMapper">
|
||||
|
||||
<select id="selectLsCountList" resultType="com.ruoyi.group.domain.entity.GroupCmpmCountLingshou825">
|
||||
SELECT
|
||||
dt,
|
||||
group_id,
|
||||
group_name,
|
||||
group_mode,
|
||||
dept_id,
|
||||
dept_name,
|
||||
outlets_id,
|
||||
outlets_name,
|
||||
user_name,
|
||||
cust_num,
|
||||
zf_365cnt,
|
||||
zf_180cnt,
|
||||
zf_90cnt,
|
||||
zf_30cnt,
|
||||
zf_365rt,
|
||||
zf_180rt,
|
||||
zf_90rt,
|
||||
zf_30rt,
|
||||
cur_bal_d,
|
||||
sx_rat,
|
||||
yx_rat,
|
||||
sx_num,
|
||||
yx_num,
|
||||
sx_bal,
|
||||
bal_loan,
|
||||
loan_ave,
|
||||
yxht_rat,
|
||||
dian_rat,
|
||||
shui_rat,
|
||||
tax_rat,
|
||||
open_rat,
|
||||
yxht_num,
|
||||
dian_num,
|
||||
shui_num,
|
||||
tax_num,
|
||||
open_num,
|
||||
dep_bal,
|
||||
fin_bal,
|
||||
grhx_num,
|
||||
cfyx_num,
|
||||
yxxyk_num,
|
||||
yxsbk_num,
|
||||
`2to3_sbk_num` as twoTo3SbkNum,
|
||||
ylj_to_sbk_num,
|
||||
fshl_num,
|
||||
yxsd_num,
|
||||
hxsd_num,
|
||||
region_code,
|
||||
ops_dept
|
||||
FROM group_cmpm_count_lingshou_825
|
||||
<where>
|
||||
<if test="dt != null and dt != ''">and dt = #{dt}</if>
|
||||
<if test="groupName != null and groupName != ''">and group_name like concat('%', #{groupName}, '%')</if>
|
||||
<if test="isBranch == true">and dept_id like concat('%',concat(#{deptId},'%'))</if>
|
||||
<if test="isOutlet == true">and outlets_id like concat('%',concat(#{deptId},'%'))</if>
|
||||
<if test="isManager == true">and user_name like concat('%',concat(#{userName},'%'))</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGsCountList" resultType="com.ruoyi.group.domain.entity.GroupCmpmCountGongsi825">
|
||||
SELECT
|
||||
dt,
|
||||
group_id,
|
||||
group_name,
|
||||
group_mode,
|
||||
dept_id,
|
||||
dept_name,
|
||||
outlets_id,
|
||||
outlets_name,
|
||||
user_name,
|
||||
cust_num,
|
||||
hq_cur_balance,
|
||||
bz_cur_balance,
|
||||
loan_balance_cny,
|
||||
finance_prod_711_balance,
|
||||
finance_prod_716_balance,
|
||||
loan_year_dailyaverage,
|
||||
qfcd_rat,
|
||||
tx_rat,
|
||||
bh_rat,
|
||||
yxdfgz_rat,
|
||||
dkdf_rat,
|
||||
dksf_rat,
|
||||
dkshf_rat,
|
||||
pjb_rat,
|
||||
czb_rat,
|
||||
sfb_rat,
|
||||
mrb_rat,
|
||||
szst_rat,
|
||||
kh_rat,
|
||||
gjjsyw_rat,
|
||||
yqjsh_rat,
|
||||
qfcd_num,
|
||||
tx_num,
|
||||
bh_num,
|
||||
yxdfgz_num,
|
||||
ustr_count_per_m,
|
||||
ustr_bal_m,
|
||||
dkdf_num,
|
||||
dksf_num,
|
||||
dkshf_num,
|
||||
pjb_num,
|
||||
czb_num,
|
||||
sfb_num,
|
||||
mrb_num,
|
||||
szst_num,
|
||||
kh_num,
|
||||
gjjsyw_num,
|
||||
yqjsh_num,
|
||||
region_code,
|
||||
ops_dept,
|
||||
htqy_rat,
|
||||
htqy_num,
|
||||
dept_type,
|
||||
zf_365cnt,
|
||||
zf_180cnt,
|
||||
zf_90cnt,
|
||||
zf_30cnt,
|
||||
zf_365rt,
|
||||
zf_180rt,
|
||||
zf_90rt,
|
||||
zf_30rt,
|
||||
ph_rat,
|
||||
ph_num
|
||||
FROM group_cmpm_count_gongsi_825
|
||||
<where>
|
||||
<if test="dt != null and dt != ''">and dt = #{dt}</if>
|
||||
<if test="groupName != null and groupName != ''">and group_name like concat('%', #{groupName}, '%')</if>
|
||||
<if test=" isBranch == true">and dept_id like concat('%',concat(#{deptId},'%'))</if>
|
||||
<if test=" isOutlet == true">and outlets_id like concat('%',concat(#{deptId},'%'))</if>
|
||||
<if test=" isManager == true">and user_name like concat('%',concat(#{userName},'%'))</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectLsCustList" resultType="com.ruoyi.group.domain.entity.GroupCustCountLingshou825">
|
||||
SELECT
|
||||
group_id,
|
||||
cust_name,
|
||||
cust_idc,
|
||||
cust_isn,
|
||||
cur_bal_d,
|
||||
bal_loan,
|
||||
loan_ave,
|
||||
is_sx,
|
||||
is_yx,
|
||||
sx_bal,
|
||||
is_yxht,
|
||||
is_xyk,
|
||||
fshl,
|
||||
is_sd,
|
||||
dian,
|
||||
shui,
|
||||
tax,
|
||||
open_num,
|
||||
dep_bal,
|
||||
fin_bal,
|
||||
is_grhx,
|
||||
is_cfyx,
|
||||
is_yxsbk,
|
||||
is_2to3_sbk,
|
||||
is_ylj_to_sbk,
|
||||
region_code,
|
||||
ops_dept,
|
||||
cust_type,
|
||||
is_365zf,
|
||||
is_180zf,
|
||||
is_90zf,
|
||||
is_30zf,
|
||||
dt,
|
||||
is_hxsd
|
||||
FROM group_cust_count_lingshou_825
|
||||
<where>
|
||||
group_id = #{groupId}
|
||||
<if test="dt != null and dt != ''">and dt = #{dt}</if>
|
||||
<if test="custName != null and custName != ''">and cust_name like concat('%', #{custName}, '%')</if>
|
||||
<if test="custIdc != null and custIdc != ''">and cust_idc like concat('%', #{custIdc}, '%')</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectGsCustList" resultType="com.ruoyi.group.domain.entity.GroupCustCountGongsi825">
|
||||
SELECT
|
||||
group_id,
|
||||
cust_name,
|
||||
social_credit_code,
|
||||
cust_isn,
|
||||
hq_cur_balance,
|
||||
bz_cur_balance,
|
||||
is_credit,
|
||||
loan_balance_cny,
|
||||
loan_year_dailyaverage,
|
||||
finance_prod_716_open_flag,
|
||||
finance_prod_716_balance,
|
||||
finance_prod_711_open_flag,
|
||||
finance_prod_711_balance,
|
||||
intl_bussiness_jcbh_open_flag,
|
||||
is_ustr,
|
||||
ustr_count_per_m,
|
||||
ustr_bal_m,
|
||||
eleccharge_sign_flag,
|
||||
watercharge_sign_flag,
|
||||
taxdeduction_sign_flag,
|
||||
pjb,
|
||||
czb,
|
||||
sfb,
|
||||
mrb,
|
||||
szst,
|
||||
is_open_sts,
|
||||
intl_bussiness_open_flag,
|
||||
intl_bussiness_325_open_flag,
|
||||
region_code,
|
||||
ops_dept,
|
||||
cust_type,
|
||||
is_htqy,
|
||||
dept_name,
|
||||
outlets_id,
|
||||
outlets_name,
|
||||
user_name,
|
||||
dept_id,
|
||||
is_365zf,
|
||||
is_180zf,
|
||||
is_90zf,
|
||||
is_30zf,
|
||||
dt,
|
||||
is_ph
|
||||
FROM group_cust_count_gongsi_825
|
||||
<where>
|
||||
group_id = #{groupId}
|
||||
<if test="dt != null and dt != ''">and dt = #{dt}</if>
|
||||
<if test="isBranch == true">and dept_id like concat('%',concat(#{deptId},'%'))</if>
|
||||
<if test="isOutlet == true">and outlets_id like concat('%',concat(#{deptId},'%'))</if>
|
||||
<if test="isManager == true">and user_name like concat('%',concat(#{userName},'%'))</if>
|
||||
<if test="custName != null and custName != ''">and cust_name like concat('%', #{custName}, '%')</if>
|
||||
<if test="socialCreditCode != null and socialCreditCode != ''">and social_credit_code like concat('%', #{socialCreditCode}, '%')</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user