Browse Source

pom

master
583641232@qq.com 1 year ago
parent
commit
6a9f65326c
  1. 1
      cas-framework/src/main/java/com/inscloudtech/framework/config/ThreadPoolConfig.java
  2. 85
      cas-system/src/main/java/com/inscloudtech/analysiscenter/service/impl/AnalysisReportServiceImpl.java

1
cas-framework/src/main/java/com/inscloudtech/framework/config/ThreadPoolConfig.java

@ -37,6 +37,7 @@ public class ThreadPoolConfig {
executor.setQueueCapacity(threadPoolProperties.getQueueCapacity()); executor.setQueueCapacity(threadPoolProperties.getQueueCapacity());
executor.setKeepAliveSeconds(threadPoolProperties.getKeepAliveSeconds()); executor.setKeepAliveSeconds(threadPoolProperties.getKeepAliveSeconds());
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
System.out.println("核心线程数 = " + core);
return executor; return executor;
} }

85
cas-system/src/main/java/com/inscloudtech/analysiscenter/service/impl/AnalysisReportServiceImpl.java

@ -130,7 +130,7 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
// 不是查询历史报告则展示最新一条数据 // 不是查询历史报告则展示最新一条数据
lqw.isNull(AnalysisReport::getHistory); lqw.isNull(AnalysisReport::getHistory);
} }
lqw.orderByDesc(AnalysisReport::getCreateTime);
return lqw; return lqw;
} }
@ -215,6 +215,7 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
if (null != analysisReport) { if (null != analysisReport) {
analysisReport.setHistory("1"); analysisReport.setHistory("1");
analysisReport.setUpdateTime(new Date());
baseMapper.updateById(analysisReport); baseMapper.updateById(analysisReport);
} }
boolean b = baseMapper.insert(add) > 0; boolean b = baseMapper.insert(add) > 0;
@ -234,18 +235,27 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
} }
private File generateWordFileByTemplate(JSONObject esData, AnalysisReportVo vo, String caseId) throws Exception { private File generateWordFileByTemplate(JSONObject esData, AnalysisReportVo vo, String caseId) throws Exception {
List<BankStatement> bsList = new ArrayList<>();
if (esData.containsKey("dc_bank_statement")) {
bsList = esData.getBeanList("dc_bank_statement", BankStatement.class);
}
// 基础信息 // 基础信息
setValueByPublicFamily(esData, vo); setValueByPublicFamily(esData, vo);
setPhoneByBankStatement(esData, vo);
if(CollectionUtil.isNotEmpty(bsList)){
setPhoneByBankStatement(bsList, vo);
// 账户总体情况 // 账户总体情况
handleOverallAccountInfo(esData, vo);
handleOverallAccountInfo(bsList, vo);
// 涉嫌关联交易 // 涉嫌关联交易
handleConnectedTransaction(esData, vo, caseId);
handleConnectedTransaction(bsList, vo, caseId);
// 其他可疑交易 // 其他可疑交易
handleSuspiciousTransactions(esData, vo);
handleSuspiciousTransactions(bsList, vo);
}
// 可疑资金来源及去向 // 可疑资金来源及去向
// 存取现情况 // 存取现情况
@ -530,10 +540,7 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
/** /**
* 可疑交易 * 可疑交易
*/ */
private void handleSuspiciousTransactions(JSONObject esData, AnalysisReportVo vo) {
if (!esData.containsKey("dc_bank_statement")) {
return;
}
private void handleSuspiciousTransactions(List<BankStatement> bsList, AnalysisReportVo vo) {
// 交易笔数 // 交易笔数
Integer transCount = vo.getTransCount(); Integer transCount = vo.getTransCount();
@ -541,7 +548,6 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
// 筛选某人作为交易对手的流水数据其中有交易时间以及交易金额进为转入金额出为转出金额获取交易备注 // 筛选某人作为交易对手的流水数据其中有交易时间以及交易金额进为转入金额出为转出金额获取交易备注
String name = vo.getName(); String name = vo.getName();
String idCard = vo.getIdCard();
List<AnalysisReportVo.ConnectedTransItem> transItems = vo.getTransItems(); // 涉嫌关联交易 List<AnalysisReportVo.ConnectedTransItem> transItems = vo.getTransItems(); // 涉嫌关联交易
Set<String> nameSet = transItems.stream() Set<String> nameSet = transItems.stream()
@ -552,9 +558,12 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
// 分析theList // 分析theList
Map<String, List<BankStatement>> counterpartyBSMap = new HashMap<>(); Map<String, List<BankStatement>> counterpartyBSMap = new HashMap<>();
// 可疑交易 涉嫌关联交易 不重合 // 可疑交易 涉嫌关联交易 不重合
List<BankStatement> bsList = esData.getBeanList("dc_bank_statement", BankStatement.class);
for (BankStatement bs : bsList) { for (BankStatement bs : bsList) {
String counterpartyName = bs.getCounterpartyName(); String counterpartyName = bs.getCounterpartyName();
if (StringUtils.isEmpty(counterpartyName)) {
continue;
}
if (StrUtil.isNotEmpty(counterpartyName)) { if (StrUtil.isNotEmpty(counterpartyName)) {
if(filterByCounterpartyName(counterpartyName,1)){ if(filterByCounterpartyName(counterpartyName,1)){
continue; continue;
@ -568,30 +577,10 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
if (StringUtils.isNotEmpty(counterpartyName) && counterpartyName.equals(vo.getName())) { if (StringUtils.isNotEmpty(counterpartyName) && counterpartyName.equals(vo.getName())) {
continue; continue;
} }
if(StrUtil.isEmpty(idCard)){
if (Objects.equals(bs.getCardHolderName().trim(), name) if (Objects.equals(bs.getCardHolderName().trim(), name)
&& !nameSet.contains(bs.getCounterpartyName().trim())){ && !nameSet.contains(bs.getCounterpartyName().trim())){
if (StringUtils.isEmpty(counterpartyName)) {
continue;
}
List<BankStatement> list = counterpartyBSMap.getOrDefault(counterpartyName, null);
if (list == null) {
counterpartyBSMap.put(counterpartyName, new ArrayList<>());
}
counterpartyBSMap.get(counterpartyName).add(bs);
}
}else {
if (StrUtil.isBlank(bs.getIdCardNo())) {
continue;
}
if (Objects.equals(bs.getCardHolderName().trim(), name)
&& Objects.equals(bs.getIdCardNo().trim(), idCard)
&& (StrUtil.isNotBlank(bs.getCounterpartyName())
&& !nameSet.contains(bs.getCounterpartyName().trim()))) {
if (StringUtils.isEmpty(counterpartyName)) {
continue;
}
List<BankStatement> list = counterpartyBSMap.getOrDefault(counterpartyName, null); List<BankStatement> list = counterpartyBSMap.getOrDefault(counterpartyName, null);
if (list == null) { if (list == null) {
counterpartyBSMap.put(counterpartyName, new ArrayList<>()); counterpartyBSMap.put(counterpartyName, new ArrayList<>());
@ -600,9 +589,6 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
} }
} }
}
List<AnalysisReportVo.ConnectedTransItem> rst = new ArrayList<>(); List<AnalysisReportVo.ConnectedTransItem> rst = new ArrayList<>();
//同时满足两个条件的数据会重复 //同时满足两个条件的数据会重复
@ -1115,6 +1101,7 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
String tpCardHolderName = tpEntry.getKey(); String tpCardHolderName = tpEntry.getKey();
List<BankStatement> bsList = tpEntry.getValue(); List<BankStatement> bsList = tpEntry.getValue();
try {
Set<String> tpCounterpartyAccountSet = bsList.stream().filter(item -> StrUtil.isNotEmpty(item.getCounterpartyAccount())).map(BankStatement::getCounterpartyAccount).collect(Collectors.toSet()); Set<String> tpCounterpartyAccountSet = bsList.stream().filter(item -> StrUtil.isNotEmpty(item.getCounterpartyAccount())).map(BankStatement::getCounterpartyAccount).collect(Collectors.toSet());
Set<String> tpCounterpartyNameSet = bsList.stream().filter(item -> StrUtil.isNotEmpty(item.getCounterpartyName())).map(BankStatement::getCounterpartyName).collect(Collectors.toSet()); Set<String> tpCounterpartyNameSet = bsList.stream().filter(item -> StrUtil.isNotEmpty(item.getCounterpartyName())).map(BankStatement::getCounterpartyName).collect(Collectors.toSet());
@ -1133,6 +1120,10 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
connectedTransactionCommonMethod(tpMap,counterpartyName,indirectItem,counterpartyNameMainList); connectedTransactionCommonMethod(tpMap,counterpartyName,indirectItem,counterpartyNameMainList);
rst.add(indirectItem); rst.add(indirectItem);
} }
}catch (Exception e){
e.printStackTrace();
}
} }
} }
} }
@ -1399,15 +1390,13 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
/** /**
* 涉嫌关联交易 * 涉嫌关联交易
*/ */
private void handleConnectedTransaction(JSONObject esData, AnalysisReportVo vo, String caseId) {
if (!esData.containsKey("dc_bank_statement")) {
return;
}
private void handleConnectedTransaction(List<BankStatement> mainBsList, AnalysisReportVo vo, String caseId) {
String name = vo.getName(); String name = vo.getName();
if(StrUtil.isEmpty(name)){ if(StrUtil.isEmpty(name)){
return; return;
} }
List<BankStatement> mainBsList = esData.getBeanList("dc_bank_statement", BankStatement.class);
List<AnalysisReportVo.ConnectedTransItem> rst = null; List<AnalysisReportVo.ConnectedTransItem> rst = null;
@ -1521,13 +1510,7 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
/** /**
* 账户总体情况 * 账户总体情况
*/ */
private void handleOverallAccountInfo(JSONObject esData, AnalysisReportVo vo) {
if (!esData.containsKey("dc_bank_statement")) {
return;
}
// 分析流水
List<BankStatement> bsList = esData.getBeanList("dc_bank_statement", BankStatement.class);
private void handleOverallAccountInfo(List<BankStatement> bsList, AnalysisReportVo vo) {
Map<String, List<BankStatement>> groupByCard = bsList.stream().filter(i ->StrUtil.isNotEmpty(i.getCardNumber())).collect(Collectors.groupingBy(BankStatement::getCardNumber)); Map<String, List<BankStatement>> groupByCard = bsList.stream().filter(i ->StrUtil.isNotEmpty(i.getCardNumber())).collect(Collectors.groupingBy(BankStatement::getCardNumber));
@ -1741,13 +1724,9 @@ public class AnalysisReportServiceImpl implements IAnalysisReportService {
} }
} }
private void setPhoneByBankStatement(JSONObject esData, AnalysisReportVo vo) {
if (!esData.containsKey("dc_bank_statement")) {
return;
}
List<BankStatement> list = esData.getBeanList("dc_bank_statement", BankStatement.class);
private void setPhoneByBankStatement(List<BankStatement> bsList, AnalysisReportVo vo) {
Set<String> phoneSet = new HashSet<>(); Set<String> phoneSet = new HashSet<>();
for (BankStatement p : list) {
for (BankStatement p : bsList) {
if (!(StrUtil.isNotBlank(p.getCardHolderName()) && StrUtil.isNotBlank(p.getIdCardNo()))) { if (!(StrUtil.isNotBlank(p.getCardHolderName()) && StrUtil.isNotBlank(p.getIdCardNo()))) {
continue; continue;
} }

Loading…
Cancel
Save