Compare commits

...

5 Commits

Author SHA1 Message Date
6c3db8497b 0318青田催收信息恢复 2026-03-18 10:39:42 +08:00
wkc
e36c46e97c 环境配置 2026-03-12 15:12:57 +08:00
wkc
b10774ee6e 环境配置 2026-03-12 14:52:04 +08:00
4fc837b6a9 0311海宁预警优化 2026-03-11 10:41:14 +08:00
1f33d681e1 0310海宁预警优化 2026-03-10 18:41:31 +08:00
13 changed files with 126 additions and 19 deletions

2
.gitignore vendored
View File

@@ -53,3 +53,5 @@ mvn/
浙江省/
ruoyi-ui/vue.config.js
*.zip

View File

@@ -31,4 +31,6 @@ public interface DashboardService {
CommonRespVO getWarnRespList(String type, Long pageNum, Long pageSize);
CommonRespVO getTagList(String custId);
CommonRespVO getTaskDetail(String custId);
}

View File

@@ -271,6 +271,44 @@ public class DashboardServiceImpl implements DashboardService {
return respVO;
}
/**
* 获取催收任务详情--青田
*
* @return
*/
@Override
public CommonRespVO getTaskDetail(String custId) {
CommonRespVO respVO = new CommonRespVO();
UrlRegistry urlRegistry = urlRegistryMapper.selectUrlByCondition(SecurityUtils.getHeadId(), "2", "催收信息");
if (urlRegistry == null || urlRegistry.getUrlPath() == null) {
log.warn("未配置催收信息接口URL, headId: {}", SecurityUtils.getHeadId());
return respVO;
}
String processedCustId = custId.length() > 3 ? custId.substring(3) : custId;
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("csno", processedCustId);
String paramJson = JSON.toJSONString(paramMap);
try {
String authToken = getAuthToken();
String resp = HttpUtils.doPost(urlRegistry.getUrlPath(), paramJson, authToken);
respVO = resp2VO(resp);
} catch (Exception e) {
log.error("请求催收信息异常: " + e.getMessage());
redisCache.deleteObject(REDIS_KEY_TOKEN + SecurityUtils.getUsername());
String newToken = getAuthToken();
log.info("已刷新token, 重试请求, token: " + newToken);
try {
String resp = HttpUtils.doPost(urlRegistry.getUrlPath(), paramJson, newToken);
respVO = resp2VO(resp);
} catch (Exception ex) {
log.error("重试请求仍然失败: " + ex.getMessage());
}
}
return respVO;
}
/**
* 获取token--青田
*

View File

@@ -35,6 +35,17 @@ public class CustInfoBusinessVo {
private List<AddressDetail> addressDetails;
//催收任务详情--青田
private List<Map<String, Object>> taskDetail;
public List<Map<String, Object>> getTaskDetail() {
return taskDetail;
}
public void setTaskDetail(List<Map<String, Object>> taskDetail) {
this.taskDetail = taskDetail;
}
public List<AddressDetail> getAddressDetails() {
return addressDetails;
}

View File

@@ -36,6 +36,17 @@ public class CustInfoMerchantVo {
private List<AddressDetail> addressDetails;
//催收任务详情--青田
private List<Map<String, Object>> taskDetail;
public List<Map<String, Object>> getTaskDetail() {
return taskDetail;
}
public void setTaskDetail(List<Map<String, Object>> taskDetail) {
this.taskDetail = taskDetail;
}
public List<CmpmUserList> getCmpmUserLists() {
return cmpmUserLists;
}

View File

@@ -46,6 +46,17 @@ public class CustInfoRetailVo
//他行利率信息
private List<OtherBankRate> otherBankRates;
//催收任务详情--青田
private List<Map<String, Object>> taskDetail;
public List<Map<String, Object>> getTaskDetail() {
return taskDetail;
}
public void setTaskDetail(List<Map<String, Object>> taskDetail) {
this.taskDetail = taskDetail;
}
public String getCmpmUserName() {
return cmpmUserName!=null?cmpmUserName:"";
}

View File

@@ -8,6 +8,8 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.ibs.custmap.domain.entity.CustInfoRadar;
import com.ruoyi.ibs.custmap.mapper.CustMapMapper;
import com.ruoyi.ibs.customerselect.mapper.CustInfoBusinessMapper;
import com.ruoyi.ibs.dashboard.domain.vo.CommonRespVO;
import com.ruoyi.ibs.dashboard.service.DashboardService;
import com.ruoyi.ibs.grid.domain.vo.AnchorDetail;
import com.ruoyi.ibs.grid.mapper.AnchorMapper;
import com.ruoyi.ibs.grid.service.AnchorService;
@@ -66,7 +68,8 @@ public class CustInfoBusinessServiceImpl implements ICustInfoBusinessService
private AnchorMapper anchorMapper;
@Resource
RedisCache redisCache;
@Autowired
private DashboardService dashboardService;
@Autowired
private CustMapMapper custMapMapper;
/**
@@ -119,6 +122,10 @@ public class CustInfoBusinessServiceImpl implements ICustInfoBusinessService
if (custInfoBusiness.getSocialCreditCode()!=null){
custInfoBusinessVo.setAddressDetails(anchorMapper.selectCustAddressList(custInfoBusiness.getSocialCreditCode()));
}
if (SecurityUtils.getHeadId().equals("932")){
CommonRespVO taskDetail = dashboardService.getTaskDetail(custId);
custInfoBusinessVo.setTaskDetail(taskDetail.getData());
}
return custInfoBusinessVo;
}

View File

@@ -5,6 +5,8 @@ import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.ibs.custmap.domain.entity.CustInfoRadar;
import com.ruoyi.ibs.custmap.mapper.CustMapMapper;
import com.ruoyi.ibs.dashboard.domain.vo.CommonRespVO;
import com.ruoyi.ibs.dashboard.service.DashboardService;
import com.ruoyi.ibs.grid.domain.vo.AnchorDetail;
import com.ruoyi.ibs.grid.mapper.AnchorMapper;
import com.ruoyi.ibs.grid.service.AnchorService;
@@ -64,8 +66,8 @@ public class CustInfoMerchantServiceImpl implements ICustInfoMerchantService {
private AnchorService anchorService;
@Autowired
private AnchorMapper anchorMapper;
@Autowired
private DashboardService dashboardService;
@Autowired
private CustMapMapper custMapMapper;
@@ -119,7 +121,10 @@ public class CustInfoMerchantServiceImpl implements ICustInfoMerchantService {
if (custInfoMerchant.getSocialCreditCode()!=null){
custInfoMerchantVo.setAddressDetails(anchorMapper.selectCustAddressList(custInfoMerchant.getSocialCreditCode()));
}
if (SecurityUtils.getHeadId().equals("932")){
CommonRespVO taskDetail = dashboardService.getTaskDetail(custId);
custInfoMerchantVo.setTaskDetail(taskDetail.getData());
}
return custInfoMerchantVo;
}

View File

@@ -2,7 +2,10 @@ package com.ruoyi.ibs.list.service.impl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.ibs.customerselect.mapper.CustInfoBusinessMapper;
import com.ruoyi.ibs.dashboard.domain.vo.CommonRespVO;
import com.ruoyi.ibs.dashboard.service.DashboardService;
import com.ruoyi.ibs.grid.domain.vo.AnchorDetail;
import com.ruoyi.ibs.grid.mapper.AnchorMapper;
import com.ruoyi.ibs.grid.service.AnchorService;
@@ -59,6 +62,8 @@ public class CustInfoRetailServiceImpl implements ICustInfoRetailService {
private SysIndustryMapper sysIndustryMapper;
@Autowired
private AnchorMapper anchorMapper;
@Autowired
private DashboardService dashboardService;
/**
* 查询对私客户信息
@@ -138,7 +143,10 @@ public class CustInfoRetailServiceImpl implements ICustInfoRetailService {
if (custInfoRetail.getCustIdc()!=null){
custInfoRetailVo.setAddressDetails(anchorMapper.selectCustAddressList(custInfoRetail.getCustIdc()));
}
}
if (SecurityUtils.getHeadId().equals("932")){
CommonRespVO taskDetail = dashboardService.getTaskDetail(custId);
custInfoRetailVo.setTaskDetail(taskDetail.getData());
}
return custInfoRetailVo;
}

View File

@@ -53,7 +53,7 @@ public class WorkRecordServiceImpl implements WorkRecordService {
@Resource
private RedisCache redisCache;
private final static String alterTypeRedisKey = "work:alter_types_";
private final static String alterTypeRedisKey = "work:alter_types_count_";
/**
* 查询我的工作清单
@@ -206,19 +206,18 @@ public class WorkRecordServiceImpl implements WorkRecordService {
@Override
public List<WarnInfoVO> getAlterTypes() {
String headId = SecurityUtils.getHeadId();
String redisKey = alterTypeRedisKey + headId;
String username = SecurityUtils.getUsername();
String redisKey = alterTypeRedisKey + username;
// 先从 redis 获取缓存
if (redisCache.hasKey(redisKey)) {
List<WarnInfoVO> cachedList = redisCache.getCacheObject(redisKey);
if (cachedList != null && !cachedList.isEmpty()) {
log.debug("从 redis 获取预警类型缓存, headId: {}", headId);
log.debug("从 redis 获取预警类型缓存, username: {}", username);
return cachedList;
}
}
String username = SecurityUtils.getUsername();
// 先查询预警类型列表
List<String> alterTypes = workRecordMapper.selectAlterTypesByHeadId(headId);
@@ -232,9 +231,9 @@ public class WorkRecordServiceImpl implements WorkRecordService {
return warnInfoVO;
}).collect(Collectors.toList());
// 存入 redis过期时间 1 天
redisCache.setCacheObject(redisKey, resultList, 86400, TimeUnit.SECONDS);
log.debug("预警类型数据已存入 redis, headId: {}, 数量: {}", headId, resultList.size());
// 存入 redis过期时间到当天结束
redisCache.setCacheObjectToEndDay(redisKey, resultList);
log.debug("预警类型数据已存入 redis, username: {}, 数量: {}", username, resultList.size());
return resultList;
}

View File

@@ -5,4 +5,10 @@ VUE_APP_HJ = 'development'
VUE_APP_LOCATION_URL = 'http://localhost:12899'
#VUE_APP_LOCATION_URL = 'http://158.224.208.32:12899'
VUE_APP_REDIRECT_URL = 'https://szzhcs.zrubft.com:12818/szzh-h5/#/dashboard/home'
VUE_APP_REDIRECT_URL = 'https://szzhcs.zrubft.com:12818/szzh-h5/#/dashboard/home'
VUE_APP_BAIDU_PATH = '\baidu\script\getscript.js?type=webgl&v=1.0&services=&t=20230529114224'
VUE_APP_BAIDU_CSS_PATH = '\baidu\script\bmap.css'
VUE_APP_WEIXIN_API = ''

View File

@@ -5,3 +5,10 @@ VUE_APP_HJ = 'production'
VUE_APP_LOCATION_URL = 'https://szzh.zrubft.com:12818/szzh-h5-api'
VUE_APP_REDIRECT_URL = 'https://szzh.zrubft.com:12818/szzh-h5/#/dashboard/home'
VUE_APP_BAIDU_PATH = '\baidu\script\getscript.pro.js?type=webgl&v=1.0&services=&t=20230529114224'
VUE_APP_BAIDU_CSS_PATH = '\baidu\script\bmap.pro.css'
VUE_APP_WEIXIN_API = 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js'

View File

@@ -21,13 +21,13 @@
<script>
window.BMAP_AUTHENTIC_KEY = "mokVj0S4sGE9av6NBwy8WHY0xnQsucbE"
</script>
<script type="text/javascript" src="\baidu\script\getscript.js?type=webgl&v=1.0&services=&t=20230529114224"></script>
<link rel="stylesheet" type="text/css" href="\baidu\script\bmap.css" />
<script type="text/javascript" src="\baidu\script\index.umd.min.js"></script>
<script type="text/javascript" src="<%= VUE_APP_BAIDU_PATH %>"></script>
<link rel="stylesheet" type="text/css" href="<%= VUE_APP_BAIDU_CSS_PATH %>" />
<!-- <script type="text/javascript" src="\baidu\script\index.umd.min.js"></script> -->
<!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=mokVj0S4sGE9av6NBwy8WHY0xnQsucbE"></script> -->
<script type="text/javascript" src="./vconsole/vconsole.min.js"></script>
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript" src="./baidu/script/HeatMap.js"></script>
<script type="text/javascript" src="<%= VUE_APP_WEIXIN_API %>"></script>
<!-- <script type="text/javascript" src="./baidu/script/HeatMap.js"></script> -->
<script type="text/javascript">
var env='<%= process.env.VUE_APP_HJ %>'
if(env!=='production'){