From a7a7f40a352bc3a0bf51cc13848e19bf834c4017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=B9=90=E8=A8=80?= Date: Thu, 26 Mar 2026 18:03:33 +0800 Subject: [PATCH] =?UTF-8?q?0326-=E6=B5=B7=E5=AE=81pad=E8=B5=B0=E8=AE=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../grid/controller/GridCountController.java | 73 ++++--- .../entity/GridCmpmCountLingshouNew825.java | 113 +++++++++++ .../entity/GridCustCountLingshouNew825.java | 75 ++++++++ .../ibs/grid/mapper/GridCountMapper.java | 4 + .../ibs/grid/service/GridCountService.java | 4 + .../service/impl/GridCountServiceimpl.java | 24 ++- .../domain/VisitInfoFeedbackUpdateDTO.java | 3 + .../service/impl/SysCampaignServiceImpl.java | 1 + .../resources/mapper/grid/GridCountMapper.xml | 60 +++++- .../mapper/list/SysCampaignMapper.xml | 2 + .../views/grid/performance/custom/index.vue | 8 +- .../src/views/grid/performance/list/index.vue | 179 ++++++------------ .../src/views/grid/performance/list/list.js | 82 ++++++++ .../views/taskManage/PADvisitRecord/index.vue | 13 ++ 14 files changed, 491 insertions(+), 150 deletions(-) create mode 100644 ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCmpmCountLingshouNew825.java create mode 100644 ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCustCountLingshouNew825.java diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/controller/GridCountController.java b/ibs/src/main/java/com/ruoyi/ibs/grid/controller/GridCountController.java index 6fad28a..245ebdf 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/grid/controller/GridCountController.java +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/controller/GridCountController.java @@ -1,56 +1,68 @@ package com.ruoyi.ibs.grid.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.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshou; -import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshouNew825; import com.ruoyi.ibs.grid.domain.entity.GridCustCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshouNew825; import com.ruoyi.ibs.grid.service.GridCountService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +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.servlet.http.HttpServletResponse; import java.util.List; - @Api(tags = "网格汇总") @RestController @RequestMapping("/ibs/GridCount/") public class GridCountController extends BaseController { @Autowired - GridCountService service; + private GridCountService service; @ApiOperation(value = "查询零售汇总网格列表") @GetMapping("LsList") - public TableDataPageInfo selectLsCountList(String town, String village,String dt) { + public TableDataPageInfo selectLsCountList(String town, String village, String dt) { Page page = startPage(); - List list = service.selectLsCountList(town, village,dt); + if (isNewRetailTenant()) { + List list = service.selectLsCountListNew825(town, village, dt); + return getDataTable(list, page); + } + List list = service.selectLsCountList(town, village, dt); return getDataTable(list, page); } @ApiOperation(value = "查询公司汇总网格列表") @GetMapping("GsList") - public TableDataPageInfo selectGsCountList(String town, String village,String dt) { + public TableDataPageInfo selectGsCountList(String town, String village, String dt) { Page page = startPage(); - List list = service.selectGsCountList(town, village,dt); + List list = service.selectGsCountList(town, village, dt); return getDataTable(list, page); } @ApiOperation(value = "导出零售汇总网格", produces = "application/octet-stream") @GetMapping("exportLs") - public void exportLs(HttpServletResponse response, String town, String village,String dt) { + public void exportLs(HttpServletResponse response, String town, String village, String dt) { try { + if (isNewRetailTenant()) { + ExcelUtil util = new ExcelUtil<>(GridCmpmCountLingshouNew825.class); + util.exportExcel(response, service.selectLsCountListNew825(town, village, dt), "零售网格汇总"); + return; + } ExcelUtil util = new ExcelUtil<>(GridCmpmCountLingshou.class); - util.exportExcel(response, service.selectLsCountList(town, village,dt), "零售网格汇总"); + util.exportExcel(response, service.selectLsCountList(town, village, dt), "零售网格汇总"); } catch (Exception e) { e.printStackTrace(); } @@ -59,10 +71,10 @@ public class GridCountController extends BaseController { @Log(title = "导出公司汇总网格") @ApiOperation(value = "导出公司汇总网格", produces = "application/octet-stream") @GetMapping("exportGs") - public void exportGs(HttpServletResponse response, String town, String village,String dt) { + public void exportGs(HttpServletResponse response, String town, String village, String dt) { try { ExcelUtil util = new ExcelUtil<>(GridCmpmCountGongsi.class); - util.exportExcel(response, service.selectGsCountList(town, village,dt), "公司网格汇总"); + util.exportExcel(response, service.selectGsCountList(town, village, dt), "公司网格汇总"); } catch (Exception e) { e.printStackTrace(); } @@ -71,45 +83,58 @@ public class GridCountController extends BaseController { @Log(title = "查询零售客户明细") @ApiOperation(value = "查询零售客户明细") @GetMapping("LsCustList") - public TableDataPageInfo selectLsCustList(@RequestParam String regionCode, String custName, String custIdc,String dt) { + public TableDataPageInfo selectLsCustList(@RequestParam String regionCode, String custName, String custIdc, String dt) { Page page = startPage(); - List list = service.selectLsCustList(regionCode, custName, custIdc,dt); + if (isNewRetailTenant()) { + List list = service.selectLsCustListNew825(regionCode, custName, custIdc, dt); + return getDataTable(list, page); + } + List list = service.selectLsCustList(regionCode, custName, custIdc, dt); return getDataTable(list, page); } @Log(title = "查询公司客户明细") @ApiOperation(value = "查询公司客户明细") @GetMapping("GsCustList") - public TableDataPageInfo selectGsCustList(@RequestParam String regionCode, String custName, String socialCreditCode,String dt) { + public TableDataPageInfo selectGsCustList(@RequestParam String regionCode, String custName, String socialCreditCode, String dt) { Page page = startPage(); - List list = service.selectGsCustList(regionCode, custName, socialCreditCode,dt); + List list = service.selectGsCustList(regionCode, custName, socialCreditCode, dt); return getDataTable(list, page); } - - @Log(title = "导出零售客户明细") @ApiOperation(value = "导出零售客户明细", produces = "application/octet-stream") @GetMapping("exportLsCust") - public void exportLsCust(HttpServletResponse response, @RequestParam String regionCode, String custName, String custIdc,String dt) { + public void exportLsCust(HttpServletResponse response, @RequestParam String regionCode, String custName, String custIdc, String dt) { try { + if (isNewRetailTenant()) { + ExcelUtil util = new ExcelUtil<>(GridCustCountLingshouNew825.class); + util.exportExcel(response, service.selectLsCustListNew825(regionCode, custName, custIdc, dt), "网格客户明细"); + return; + } ExcelUtil util = new ExcelUtil<>(GridCustCountLingshou.class); - util.exportExcel(response, service.selectLsCustList(regionCode, custName, custIdc,dt), "网格客户明细"); + util.exportExcel(response, service.selectLsCustList(regionCode, custName, custIdc, dt), "网格客户明细"); } catch (Exception e) { e.printStackTrace(); } } - @Log(title = "导出公司客户明细") @ApiOperation(value = "导出公司客户明细", produces = "application/octet-stream") @GetMapping("exportGsCust") - public void exportGsCust(HttpServletResponse response, @RequestParam String regionCode, String custName, String socialCreditCode,String dt) { + public void exportGsCust(HttpServletResponse response, @RequestParam String regionCode, String custName, String socialCreditCode, String dt) { try { ExcelUtil util = new ExcelUtil<>(GridCustCountGongsi.class); - util.exportExcel(response, service.selectGsCustList(regionCode, custName, socialCreditCode,dt), "网格客户明细"); + util.exportExcel(response, service.selectGsCustList(regionCode, custName, socialCreditCode, dt), "网格客户明细"); } catch (Exception e) { e.printStackTrace(); } } + + /** + * 测试环境先放开965,上线前改回825。 + */ + private boolean isNewRetailTenant() { + return SecurityUtils.getDeptId().toString().startsWith("965"); + } } diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCmpmCountLingshouNew825.java b/ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCmpmCountLingshouNew825.java new file mode 100644 index 0000000..844762f --- /dev/null +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCmpmCountLingshouNew825.java @@ -0,0 +1,113 @@ +package com.ruoyi.ibs.grid.domain.entity; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; + +/** + * 网格汇总统计_零售825专用对象 grid_cmpm_count_lingshou_new_825 + */ +@Data +public class GridCmpmCountLingshouNew825 implements Serializable { + 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 county; + @Excel(name = "镇/街道") + private String town; + @Excel(name = "村/社区") + private String village; + @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; + private String regionCode; + private String opsDept; +} diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCustCountLingshouNew825.java b/ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCustCountLingshouNew825.java new file mode 100644 index 0000000..c9a192b --- /dev/null +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/domain/entity/GridCustCountLingshouNew825.java @@ -0,0 +1,75 @@ +package com.ruoyi.ibs.grid.domain.entity; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; + +/** + * 客户明细统计_零售825专用对象 grid_cust_count_lingshou_new_825 + */ +@Data +public class GridCustCountLingshouNew825 implements Serializable { + private static final long serialVersionUID = 1L; + + @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; +} diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/mapper/GridCountMapper.java b/ibs/src/main/java/com/ruoyi/ibs/grid/mapper/GridCountMapper.java index e3113d6..988b626 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/grid/mapper/GridCountMapper.java +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/mapper/GridCountMapper.java @@ -2,8 +2,10 @@ package com.ruoyi.ibs.grid.mapper; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshouNew825; import com.ruoyi.ibs.grid.domain.entity.GridCustCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshouNew825; import org.apache.ibatis.annotations.Mapper; import java.util.HashMap; @@ -12,10 +14,12 @@ import java.util.List; @Mapper public interface GridCountMapper { List selectLsCountList(HashMap paramMap); + List selectLsCountListNew825(HashMap paramMap); List selectGsCountList(HashMap paramMap); List selectLsCustList(HashMap paramMap); + List selectLsCustListNew825(HashMap paramMap); List selectGsCustList(HashMap paramMap); } diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/service/GridCountService.java b/ibs/src/main/java/com/ruoyi/ibs/grid/service/GridCountService.java index 90c4bb0..7e26aee 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/grid/service/GridCountService.java +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/service/GridCountService.java @@ -2,18 +2,22 @@ package com.ruoyi.ibs.grid.service; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshouNew825; import com.ruoyi.ibs.grid.domain.entity.GridCustCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshouNew825; import java.util.List; public interface GridCountService { List selectLsCountList(String town,String village,String dt); + List selectLsCountListNew825(String town, String village, String dt); List selectGsCountList(String town, String village,String dt); List selectLsCustList(String regionCode, String custName, String custIdc,String dt); + List selectLsCustListNew825(String regionCode, String custName, String custIdc, String dt); List selectGsCustList(String regionCode, String custName, String socialCreditCode,String dt); } diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/GridCountServiceimpl.java b/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/GridCountServiceimpl.java index fcd2029..83358f4 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/GridCountServiceimpl.java +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/GridCountServiceimpl.java @@ -3,8 +3,10 @@ package com.ruoyi.ibs.grid.service.impl; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshouNew825; import com.ruoyi.ibs.grid.domain.entity.GridCustCountGongsi; import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshou; +import com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshouNew825; import com.ruoyi.ibs.grid.mapper.GridCountMapper; import com.ruoyi.ibs.grid.service.GridCountService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +23,15 @@ public class GridCountServiceimpl implements GridCountService { @Override public List selectLsCountList(String town,String village,String dt) { + return mapper.selectLsCountList(buildLsCountParams(town, village, dt)); + } + + @Override + public List selectLsCountListNew825(String town, String village, String dt) { + return mapper.selectLsCountListNew825(buildLsCountParams(town, village, dt)); + } + + private HashMap buildLsCountParams(String town, String village, String dt) { HashMap paramMap = new HashMap<>(); if(SecurityUtils.userRole().equals("branch")){ paramMap.put("isBranch",true); @@ -36,7 +47,7 @@ public class GridCountServiceimpl implements GridCountService { paramMap.put("town",town); paramMap.put("village",village); paramMap.put("dt",dt); - return mapper.selectLsCountList(paramMap); + return paramMap; } @Override @@ -65,6 +76,15 @@ public class GridCountServiceimpl implements GridCountService { @Override public List selectLsCustList(String regionCode, String custName, String custIdc,String dt) { + return mapper.selectLsCustList(buildLsCustParams(regionCode, custName, custIdc, dt)); + } + + @Override + public List selectLsCustListNew825(String regionCode, String custName, String custIdc, String dt) { + return mapper.selectLsCustListNew825(buildLsCustParams(regionCode, custName, custIdc, dt)); + } + + private HashMap buildLsCustParams(String regionCode, String custName, String custIdc, String dt) { HashMap paramMap = new HashMap<>(); paramMap.put("deptId",SecurityUtils.getDeptId()); paramMap.put("userName",SecurityUtils.getUsername()); @@ -72,7 +92,7 @@ public class GridCountServiceimpl implements GridCountService { paramMap.put("custName",custName); paramMap.put("custIdc",custIdc); paramMap.put("dt",dt); - return mapper.selectLsCustList(paramMap); + return paramMap; } @Override diff --git a/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoFeedbackUpdateDTO.java b/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoFeedbackUpdateDTO.java index 52b5e48..3515fe3 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoFeedbackUpdateDTO.java +++ b/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoFeedbackUpdateDTO.java @@ -17,6 +17,9 @@ public class VisitInfoFeedbackUpdateDTO implements Serializable { @ApiModelProperty(value = "走访渠道") private String source; + @ApiModelProperty(value = "走访备注") + private String remark; + @ApiModelProperty(value = "客户意愿结构化数据") private List feedbackItems; diff --git a/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/SysCampaignServiceImpl.java b/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/SysCampaignServiceImpl.java index 3f8d6ed..fc778f1 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/SysCampaignServiceImpl.java +++ b/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/SysCampaignServiceImpl.java @@ -2187,6 +2187,7 @@ public class SysCampaignServiceImpl implements ISysCampaignService updateDTO.setUserRole(SecurityUtils.userRole()); updateDTO.setDeptId(String.valueOf(SecurityUtils.getDeptId())); updateDTO.setSource(StringUtils.trimToNull(updateDTO.getSource())); + updateDTO.setRemark(StringUtils.trimToNull(updateDTO.getRemark())); updateDTO.setIntentionProductValue(buildIntentionProductValue(updateDTO.getFeedbackItems())); int rows = sysCampaignMapper.updateVisitInfoFeedback(updateDTO); if (rows <= 0) { diff --git a/ibs/src/main/resources/mapper/grid/GridCountMapper.xml b/ibs/src/main/resources/mapper/grid/GridCountMapper.xml index 711fdde..3c529fc 100644 --- a/ibs/src/main/resources/mapper/grid/GridCountMapper.xml +++ b/ibs/src/main/resources/mapper/grid/GridCountMapper.xml @@ -21,6 +21,24 @@ + + + + - \ No newline at end of file + diff --git a/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml b/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml index d883af4..d22ba8d 100644 --- a/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml +++ b/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml @@ -1429,7 +1429,9 @@ update visit_info vi left join sys_dept d on vi.dept_id = d.dept_id set vi.source = #{source}, + vi.remark = #{remark}, vi.intention_product_value = #{intentionProductValue}, + vi.inter_res = '0', vi.update_by = #{userName}, vi.update_time = sysdate() where vi.id = #{id} diff --git a/ruoyi-ui/src/views/grid/performance/custom/index.vue b/ruoyi-ui/src/views/grid/performance/custom/index.vue index e7ec0d8..22b67b0 100644 --- a/ruoyi-ui/src/views/grid/performance/custom/index.vue +++ b/ruoyi-ui/src/views/grid/performance/custom/index.vue @@ -112,6 +112,7 @@ import { Message } from "element-ui"; import { privateTotalColumns, publicTotalColumns, + privateTotalColumnsNew825, privateTotalColumnsNm, publicTotalColumnsNm, privateTotalColumnsMap, publicTotalColumnsMap, privateTotalColumnsAll, publicTotalColumnsAll, @@ -163,7 +164,7 @@ export default { }, computed: { - ...mapGetters(["roles"]), + ...mapGetters(["roles", "deptId"]), //对公 isPublic() { return this.roles.includes("headPublic"); @@ -172,6 +173,9 @@ export default { isPrivate() { return this.roles.includes("headPrivate"); }, + isRetailNew825Tenant() { + return String(this.deptId || '').slice(0, 3) === '965'; + }, }, created() { const { @@ -196,7 +200,7 @@ export default { this.shapeName = shapeName; this.shapeId = shapeId; if (type == '1') { - this.tableColumns = this.isActive1 ? privateTotalColumns : this.isActive3 ? + this.tableColumns = this.isActive1 ? (this.isRetailNew825Tenant ? privateTotalColumnsNew825 : privateTotalColumns) : this.isActive3 ? privateTotalColumnsNm : this.isActive4 ? privateTotalColumnsMap : privateTotalColumnsAll; } if (type == '2') { diff --git a/ruoyi-ui/src/views/grid/performance/list/index.vue b/ruoyi-ui/src/views/grid/performance/list/index.vue index 8a9235e..fd818c3 100644 --- a/ruoyi-ui/src/views/grid/performance/list/index.vue +++ b/ruoyi-ui/src/views/grid/performance/list/index.vue @@ -279,6 +279,7 @@ import { cloneDeep, isEmpty } from 'lodash' import { Message } from 'element-ui' import { privateColumns, + privateColumnsNew825, publicColumns, privateColumnsNm, publicColumnsNm, @@ -349,7 +350,7 @@ export default { } }, computed: { - ...mapGetters(['roles', 'userName']), + ...mapGetters(['roles', 'userName', 'deptId']), // 对公 isPublic() { return this.roles.includes('headPublic') @@ -361,52 +362,17 @@ export default { // 965租户 is965() { return this.userName.slice(0, 3) == 965 + }, + isRetailNew825Tenant() { + return String(this.deptId || '').slice(0, 3) === '965' } }, watch: { selectedTab: { handler(val) { if (val) { - if (val == '1') { - this.tableColumns = this.isActive1 - ? privateColumns - : this.isActive3 - ? privateColumnsNm - : this.isActive4 - ? privateColumnsMap - : this.isActive7 - ? customAuth - : privateColumnsAll - this.tableKey = this.isActive1 - ? '11' - : this.isActive3 - ? '12' - : this.isActive4 - ? '13' - : this.isActive7 - ? '15' - : '14' - } - if (val == '2') { - this.tableColumns = this.isActive1 - ? publicColumns - : this.isActive3 - ? publicColumnsNm - : this.isActive4 - ? publicColumnsMap - : this.isActive7 - ? customAuth - : publicColumnsAll - this.tableKey = this.isActive1 - ? '21' - : this.isActive3 - ? '22' - : this.isActive4 - ? '23' - : this.isActive7 - ? '25' - : '24' - } + this.tableColumns = this.getCurrentColumns(val) + this.tableKey = this.getCurrentTableKey(val) } }, immediate: true @@ -432,46 +398,8 @@ export default { this.isActive3 = isActive == '3' this.isActive4 = isActive == '4' this.isActive6 = isActive == '6' - if (type == '1') { - this.tableColumns = this.isActive1 - ? privateColumns - : this.isActive3 - ? privateColumnsNm - : this.isActive4 - ? privateColumnsMap - : this.isActive7 - ? customAuth - : privateColumnsAll - this.tableKey = this.isActive1 - ? '11' - : this.isActive3 - ? '12' - : this.isActive4 - ? '13' - : this.isActive7 - ? '15' - : '14' - } - if (type == '2') { - this.tableColumns = this.isActive1 - ? publicColumns - : this.isActive3 - ? publicColumnsNm - : this.isActive4 - ? publicColumnsMap - : this.isActive7 - ? customAuth - : publicColumnsAll - this.tableKey = this.isActive1 - ? '21' - : this.isActive3 - ? '22' - : this.isActive4 - ? '23' - : this.isActive7 - ? '25' - : '24' - } + this.tableColumns = this.getCurrentColumns(type) + this.tableKey = this.getCurrentTableKey(type) for (const key in this.$route.query) { delete this.$route.query[key] } @@ -489,6 +417,53 @@ export default { this.init() }, methods: { + getRetailPrivateColumns() { + return this.isRetailNew825Tenant ? privateColumnsNew825 : privateColumns + }, + getCurrentColumns(tab) { + if (tab == '1') { + return this.isActive1 + ? this.getRetailPrivateColumns() + : this.isActive3 + ? privateColumnsNm + : this.isActive4 + ? privateColumnsMap + : this.isActive7 + ? customAuth + : privateColumnsAll + } + return this.isActive1 + ? publicColumns + : this.isActive3 + ? publicColumnsNm + : this.isActive4 + ? publicColumnsMap + : this.isActive7 + ? customAuth + : publicColumnsAll + }, + getCurrentTableKey(tab) { + if (tab == '1') { + return this.isActive1 + ? (this.isRetailNew825Tenant ? '11-825' : '11') + : this.isActive3 + ? '12' + : this.isActive4 + ? '13' + : this.isActive7 + ? '15' + : '14' + } + return this.isActive1 + ? '21' + : this.isActive3 + ? '22' + : this.isActive4 + ? '23' + : this.isActive7 + ? '25' + : '24' + }, handleMyApprove(type) { this.isActive1 = type == '1' this.isActive2 = type == '2' @@ -504,46 +479,8 @@ export default { this.isActive6 || this.isActive7 ) { - if (this.selectedTab == '1') { - this.tableColumns = this.isActive1 - ? privateColumns - : this.isActive3 - ? privateColumnsNm - : this.isActive4 - ? privateColumnsMap - : this.isActive7 - ? customAuth - : privateColumnsAll - this.tableKey = this.isActive1 - ? '11' - : this.isActive3 - ? '12' - : this.isActive4 - ? '13' - : this.isActive7 - ? '15' - : '14' - } - if (this.selectedTab == '2') { - this.tableColumns = this.isActive1 - ? publicColumns - : this.isActive3 - ? publicColumnsNm - : this.isActive4 - ? publicColumnsMap - : this.isActive7 - ? customAuth - : publicColumnsAll - this.tableKey = this.isActive1 - ? '21' - : this.isActive3 - ? '22' - : this.isActive4 - ? '23' - : this.isActive7 - ? '25' - : '24' - } + this.tableColumns = this.getCurrentColumns(this.selectedTab) + this.tableKey = this.getCurrentTableKey(this.selectedTab) const date = new Date() date.setDate(date.getDate() - 1) const year = date.getFullYear() diff --git a/ruoyi-ui/src/views/grid/performance/list/list.js b/ruoyi-ui/src/views/grid/performance/list/list.js index 6122195..2694d65 100644 --- a/ruoyi-ui/src/views/grid/performance/list/list.js +++ b/ruoyi-ui/src/views/grid/performance/list/list.js @@ -201,6 +201,57 @@ export const privateColumns = [ } ] +export const privateColumnsNew825 = [ + { prop: 'dt', label: '统计日期(T+1)', width: 140 }, + { prop: 'gridName', label: '一级网格名称', width: 160 }, + { prop: 'gridName2', label: '二级网格名称', width: 160 }, + { prop: 'county', label: '县/区', width: 120 }, + { prop: 'town', label: '镇/街道', width: 140 }, + { prop: 'village', label: '村/社区', width: 140 }, + { prop: 'deptId', label: '归属支行机构号', width: 140 }, + { prop: 'deptName', label: '归属支行名称', width: 140 }, + { prop: 'outletsId', label: '归属网点机构号', width: 140 }, + { prop: 'outletsName', label: '归属网点名称', width: 140 }, + { prop: 'userName', label: '归属客户经理', width: 140 }, + { prop: 'custNum', label: '入格客户数', width: 120 }, + { prop: 'zf365cnt', label: '近365天已走访人数', width: 150 }, + { prop: 'zf180cnt', label: '近180天已走访人数', width: 150 }, + { prop: 'zf90cnt', label: '近90天已走访人数', width: 150 }, + { prop: 'zf30cnt', label: '近30天已走访人数', width: 150 }, + { prop: 'curBalD', label: '活期存款余额(元)', width: 160 }, + { prop: 'sxNum', label: '授信户数', width: 120 }, + { prop: 'yxNum', label: '用信户数', width: 120 }, + { prop: 'sxBal', label: '授信金额(合同)', width: 160 }, + { prop: 'balLoan', label: '贷款余额(元)', width: 150 }, + { prop: 'loanAve', label: '贷款年日均(元)', width: 150 }, + { prop: 'yxhtNum', label: '合同签约客户数', width: 150 }, + { prop: 'dianNum', label: '代扣电费客户数', width: 150 }, + { prop: 'shuiNum', label: '代扣水费客户数', width: 150 }, + { prop: 'taxNum', label: '代扣税费数', width: 140 }, + { prop: 'openNum', label: '开户数', width: 120 }, + { prop: 'depBal', label: '存款余额(元)', width: 150 }, + { prop: 'finBal', label: '财富余额(元)', width: 150 }, + { prop: 'grhxNum', label: '个人核心客户数', width: 150 }, + { prop: 'cfyxNum', label: '财富有效客户数', width: 150 }, + { prop: 'yxxykNum', label: '有效信用卡数', width: 140 }, + { prop: 'yxsbkNum', label: '有效社保卡户数', width: 150 }, + { prop: 'twoTo3SbkNum', label: '二换三社保卡户数', width: 160 }, + { prop: 'yljToSbkNum', label: '养老金迁移至社保卡户数', width: 180 }, + { prop: 'fshlNum', label: '丰收互联客户数', width: 150 }, + { prop: 'yxsdNum', label: '有效收单商户', width: 140 }, + { prop: 'zf365rt', label: '近365天走访率', width: 140 }, + { prop: 'zf180rt', label: '近180天走访率', width: 140 }, + { prop: 'zf90rt', label: '近90天走访率', width: 140 }, + { prop: 'zf30rt', label: '近30天走访率', width: 140 }, + { prop: 'sxRat', label: '授信率(%)', width: 120 }, + { prop: 'yxRat', label: '用信覆盖率', width: 120 }, + { prop: 'yxhtRat', label: '合同签约率(%)', width: 140 }, + { prop: 'dianRat', label: '代扣电费覆盖率(%)', width: 150 }, + { prop: 'shuiRat', label: '代扣水费率(%)', width: 140 }, + { prop: 'taxRat', label: '代扣税费率(%)', width: 140 }, + { prop: 'openRat', label: '开户率(%)', width: 120 } +] + // 公司 export const publicColumns = [ { @@ -564,6 +615,37 @@ export const privateTotalColumns = [ } ] +export const privateTotalColumnsNew825 = [ + { prop: 'custName', label: '客户名称', width: 120 }, + { prop: 'custIdc', label: '客户证件号', width: 140 }, + { prop: 'custIsn', label: '客户内码', width: 120 }, + { prop: 'curBalD', label: '活期存款余额', width: 140 }, + { prop: 'balLoan', label: '贷款余额', width: 140 }, + { prop: 'loanAve', label: '贷款年日均', width: 140 }, + { prop: 'isSx', label: '是否授信', width: 100 }, + { prop: 'isYx', label: '是否用信', width: 100 }, + { prop: 'sxBal', label: '授信金额', width: 120 }, + { prop: 'isYxht', label: '是否合同签约', width: 120 }, + { prop: 'isXyk', label: '是否持有信用卡', width: 130 }, + { prop: 'fshl', label: '是否开通丰收互联', width: 140 }, + { prop: 'isSd', label: '是否办理收单', width: 120 }, + { prop: 'dian', label: '是否代扣电费', width: 120 }, + { prop: 'shui', label: '是否代扣水费', width: 120 }, + { prop: 'tax', label: '是否代扣税费', width: 120 }, + { prop: 'openNum', label: '开户数', width: 100 }, + { prop: 'depBal', label: '存款余额', width: 120 }, + { prop: 'finBal', label: '财富余额', width: 120 }, + { prop: 'isGrhx', label: '是否个人核心客户', width: 140 }, + { prop: 'isCfyx', label: '是否财富有效客户', width: 140 }, + { prop: 'isYxsbk', label: '是否有效社保卡客户', width: 150 }, + { prop: 'is2to3Sbk', label: '是否二换三社保卡', width: 150 }, + { prop: 'isYljToSbk', label: '是否养老金迁移至社保卡', width: 180 }, + { prop: 'is365zf', label: '近365天有无走访', width: 140 }, + { prop: 'is180zf', label: '近180天有无走访', width: 140 }, + { prop: 'is90zf', label: '近90天有无走访', width: 140 }, + { prop: 'is30zf', label: '近30天有无走访', width: 140 } +] + // 公司明细 export const publicTotalColumns = [ { diff --git a/ruoyi-ui/src/views/taskManage/PADvisitRecord/index.vue b/ruoyi-ui/src/views/taskManage/PADvisitRecord/index.vue index c770f0a..079637a 100644 --- a/ruoyi-ui/src/views/taskManage/PADvisitRecord/index.vue +++ b/ruoyi-ui/src/views/taskManage/PADvisitRecord/index.vue @@ -422,6 +422,15 @@ {{ item.label }} + + +