0326-海宁pad走访修改

This commit is contained in:
2026-03-26 18:03:33 +08:00
parent 7bbe527477
commit a7a7f40a35
14 changed files with 491 additions and 150 deletions

View File

@@ -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<GridCmpmCountLingshou> selectLsCountList(String town, String village,String dt) {
public TableDataPageInfo<?> selectLsCountList(String town, String village, String dt) {
Page<Object> page = startPage();
List<GridCmpmCountLingshou> list = service.selectLsCountList(town, village,dt);
if (isNewRetailTenant()) {
List<GridCmpmCountLingshouNew825> list = service.selectLsCountListNew825(town, village, dt);
return getDataTable(list, page);
}
List<GridCmpmCountLingshou> list = service.selectLsCountList(town, village, dt);
return getDataTable(list, page);
}
@ApiOperation(value = "查询公司汇总网格列表")
@GetMapping("GsList")
public TableDataPageInfo<GridCmpmCountGongsi> selectGsCountList(String town, String village,String dt) {
public TableDataPageInfo<GridCmpmCountGongsi> selectGsCountList(String town, String village, String dt) {
Page<Object> page = startPage();
List<GridCmpmCountGongsi> list = service.selectGsCountList(town, village,dt);
List<GridCmpmCountGongsi> 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<GridCmpmCountLingshouNew825> util = new ExcelUtil<>(GridCmpmCountLingshouNew825.class);
util.exportExcel(response, service.selectLsCountListNew825(town, village, dt), "零售网格汇总");
return;
}
ExcelUtil<GridCmpmCountLingshou> 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<GridCmpmCountGongsi> 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<GridCustCountLingshou> selectLsCustList(@RequestParam String regionCode, String custName, String custIdc,String dt) {
public TableDataPageInfo<?> selectLsCustList(@RequestParam String regionCode, String custName, String custIdc, String dt) {
Page<Object> page = startPage();
List<GridCustCountLingshou> list = service.selectLsCustList(regionCode, custName, custIdc,dt);
if (isNewRetailTenant()) {
List<GridCustCountLingshouNew825> list = service.selectLsCustListNew825(regionCode, custName, custIdc, dt);
return getDataTable(list, page);
}
List<GridCustCountLingshou> list = service.selectLsCustList(regionCode, custName, custIdc, dt);
return getDataTable(list, page);
}
@Log(title = "查询公司客户明细")
@ApiOperation(value = "查询公司客户明细")
@GetMapping("GsCustList")
public TableDataPageInfo<GridCustCountGongsi> selectGsCustList(@RequestParam String regionCode, String custName, String socialCreditCode,String dt) {
public TableDataPageInfo<GridCustCountGongsi> selectGsCustList(@RequestParam String regionCode, String custName, String socialCreditCode, String dt) {
Page<Object> page = startPage();
List<GridCustCountGongsi> list = service.selectGsCustList(regionCode, custName, socialCreditCode,dt);
List<GridCustCountGongsi> 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<GridCustCountLingshouNew825> util = new ExcelUtil<>(GridCustCountLingshouNew825.class);
util.exportExcel(response, service.selectLsCustListNew825(regionCode, custName, custIdc, dt), "网格客户明细");
return;
}
ExcelUtil<GridCustCountLingshou> 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<GridCustCountGongsi> 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");
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<GridCmpmCountLingshou> selectLsCountList(HashMap<String, Object> paramMap);
List<GridCmpmCountLingshouNew825> selectLsCountListNew825(HashMap<String, Object> paramMap);
List<GridCmpmCountGongsi> selectGsCountList(HashMap<String, Object> paramMap);
List<GridCustCountLingshou> selectLsCustList(HashMap<String, Object> paramMap);
List<GridCustCountLingshouNew825> selectLsCustListNew825(HashMap<String, Object> paramMap);
List<GridCustCountGongsi> selectGsCustList(HashMap<String, Object> paramMap);
}

View File

@@ -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<GridCmpmCountLingshou> selectLsCountList(String town,String village,String dt);
List<GridCmpmCountLingshouNew825> selectLsCountListNew825(String town, String village, String dt);
List<GridCmpmCountGongsi> selectGsCountList(String town, String village,String dt);
List<GridCustCountLingshou> selectLsCustList(String regionCode, String custName, String custIdc,String dt);
List<GridCustCountLingshouNew825> selectLsCustListNew825(String regionCode, String custName, String custIdc, String dt);
List<GridCustCountGongsi> selectGsCustList(String regionCode, String custName, String socialCreditCode,String dt);
}

View File

@@ -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<GridCmpmCountLingshou> selectLsCountList(String town,String village,String dt) {
return mapper.selectLsCountList(buildLsCountParams(town, village, dt));
}
@Override
public List<GridCmpmCountLingshouNew825> selectLsCountListNew825(String town, String village, String dt) {
return mapper.selectLsCountListNew825(buildLsCountParams(town, village, dt));
}
private HashMap<String, Object> buildLsCountParams(String town, String village, String dt) {
HashMap<String, Object> 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<GridCustCountLingshou> selectLsCustList(String regionCode, String custName, String custIdc,String dt) {
return mapper.selectLsCustList(buildLsCustParams(regionCode, custName, custIdc, dt));
}
@Override
public List<GridCustCountLingshouNew825> selectLsCustListNew825(String regionCode, String custName, String custIdc, String dt) {
return mapper.selectLsCustListNew825(buildLsCustParams(regionCode, custName, custIdc, dt));
}
private HashMap<String, Object> buildLsCustParams(String regionCode, String custName, String custIdc, String dt) {
HashMap<String, Object> 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

View File

@@ -17,6 +17,9 @@ public class VisitInfoFeedbackUpdateDTO implements Serializable {
@ApiModelProperty(value = "走访渠道")
private String source;
@ApiModelProperty(value = "走访备注")
private String remark;
@ApiModelProperty(value = "客户意愿结构化数据")
private List<VisitFeedbackItemDTO> feedbackItems;

View File

@@ -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) {

View File

@@ -21,6 +21,24 @@
</where>
</select>
<select id="selectLsCountListNew825" resultType="com.ruoyi.ibs.grid.domain.entity.GridCmpmCountLingshouNew825">
SELECT dt, grid_name, grid_name2, county, town, village, 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, region_code, ops_dept
FROM grid_cmpm_count_lingshou_new_825
<where>
<if test=" dt != null and dt != ''">and dt = #{dt}</if>
<if test=" town != null and town != ''">and town like concat('%',concat(#{town},'%'))</if>
<if test=" village != null and village != ''">and village like concat('%',concat(#{village},'%'))</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.ibs.grid.domain.entity.GridCmpmCountGongsi">
SELECT dt, grid_name, grid_name2, town, 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,ustr_count_per_m,ustr_bal_m,
@@ -59,6 +77,46 @@
<if test=" custIdc != null and custIdc != ''">and cust_idc like concat('%',concat(#{custIdc},'%'))</if>
</select>
<select id="selectLsCustListNew825" resultType="com.ruoyi.ibs.grid.domain.entity.GridCustCountLingshouNew825">
SELECT 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
FROM grid_cust_count_lingshou_new_825
where region_code = #{regionCode}
<if test=" dt != null and dt != ''">and dt = #{dt}</if>
<if test=" custName != null and custName != ''">and cust_name like concat('%',concat(#{custName},'%'))</if>
<if test=" custIdc != null and custIdc != ''">and cust_idc like concat('%',concat(#{custIdc},'%'))</if>
</select>
<select id="selectGsCustList" resultType="com.ruoyi.ibs.grid.domain.entity.GridCustCountGongsi">
SELECT cust_name, social_credit_code, cust_isn, hq_cur_balance, bz_cur_balance, is_credit,
@@ -77,4 +135,4 @@
<if test=" socialCreditCode != null and socialCreditCode != ''">and social_credit_code like concat('%',concat(#{socialCreditCode},'%'))</if>
</select>
</mapper>
</mapper>

View File

@@ -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}

View File

@@ -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') {

View File

@@ -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()

View File

@@ -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 = [
{

View File

@@ -422,6 +422,15 @@
<el-radio v-for="item in sourceOptions" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="走访备注">
<el-input
v-model="feedbackForm.remark"
type="textarea"
:rows="3"
maxlength="200"
show-word-limit
/>
</el-form-item>
<el-form-item label="客户意愿" required>
<div class="feedback-groups">
<section v-for="type in feedbackTypeOptions" :key="type" class="feedback-group">
@@ -541,6 +550,7 @@ export default {
feedbackForm: {
id: null,
source: "",
remark: "",
feedbackSelections: createEmptyFeedbackSelections()
}
};
@@ -616,6 +626,7 @@ export default {
this.feedbackForm = {
id: null,
source: "",
remark: "",
feedbackSelections: createEmptyFeedbackSelections()
};
},
@@ -666,6 +677,7 @@ export default {
this.feedbackForm = {
id: row.id,
source: row.source === null || row.source === undefined ? "" : String(row.source),
remark: row.remark || "",
feedbackSelections: this.parseFeedbackValue(row.intentionProductValue)
};
this.feedbackDialogVisible = true;
@@ -683,6 +695,7 @@ export default {
const payload = {
id: this.feedbackForm.id,
source: this.feedbackForm.source || null,
remark: this.feedbackForm.remark || null,
feedbackItems
};
this.feedbackSubmitting = true;