|
@@ -21,9 +21,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
-import java.util.function.Function;
|
|
|
import java.util.regex.Pattern;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -111,12 +109,8 @@ public class DataStaticService extends Ops {
|
|
|
|
|
|
//查询所有的主体信息汇总
|
|
|
List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
|
|
|
- Criteria.where("modelId")
|
|
|
- .is(modelId)
|
|
|
- .and("fileId")
|
|
|
- .is(dateFileIdUser)
|
|
|
- .and("generated")
|
|
|
- .is(Boolean.TRUE))), DataMap.class);
|
|
|
+ Criteria.where("fileId")
|
|
|
+ .is(dateFileIdUser))), DataMap.class);
|
|
|
Map<String, List<DataMap>> personMap = new HashMap<>();
|
|
|
Map<String, List<DataMap>> personzhmcMap = new HashMap<>();
|
|
|
for (DataMap dataMap : dataMaps) {
|
|
@@ -143,8 +137,7 @@ public class DataStaticService extends Ops {
|
|
|
|
|
|
Query query = new Query();
|
|
|
//Pattern compile = Pattern.compile("^((?!" + "张"+ ").)*$",Pattern.CASE_INSENSITIVE);
|
|
|
- query.addCriteria(Criteria.where("modelId").is(modelId));
|
|
|
- query.addCriteria(Criteria.where("generated").is(Boolean.TRUE));
|
|
|
+ query.addCriteria(Criteria.where("fileId").is(dateFileId));
|
|
|
query.addCriteria(new Criteria().andOperator(getQuery()));
|
|
|
if (StringUtils.isNotBlank(staticModelInput.getJyztzh())) {
|
|
|
query.addCriteria(Criteria.where("交易主体账号").in(Objects.requireNonNull(SplitCharacterEnum.splitByCharacter(staticModelInput.getJyztzh()))));
|
|
@@ -159,8 +152,14 @@ public class DataStaticService extends Ops {
|
|
|
query.addCriteria(Criteria.where("交易对手户名").in(Objects.requireNonNull(SplitCharacterEnum.splitByCharacter(staticModelInput.getJyzthmds()))));
|
|
|
}
|
|
|
|
|
|
- if (StringUtils.isNotBlank(staticModelInput.getJysj())) {
|
|
|
- query.addCriteria(Criteria.where("交易时间").in(Objects.requireNonNull(SplitCharacterEnum.splitByCharacter(staticModelInput.getJysj()))));
|
|
|
+ if (StringUtils.isNotBlank(staticModelInput.getJysjStart())&&StringUtils.isBlank(staticModelInput.getJysjEnd())) {
|
|
|
+ query.addCriteria(Criteria.where("交易时间").gte(staticModelInput.getJysjStart()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(staticModelInput.getJysjEnd())&&StringUtils.isBlank(staticModelInput.getJysjStart())) {
|
|
|
+ query.addCriteria(Criteria.where("交易时间").lte(staticModelInput.getJysjEnd()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(staticModelInput.getJysjEnd())&&StringUtils.isNotBlank(staticModelInput.getJysjStart())) {
|
|
|
+ query.addCriteria(Criteria.where("交易时间").gte(staticModelInput.getJysjStart()).lte(staticModelInput.getJysjEnd()));
|
|
|
}
|
|
|
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
@@ -175,8 +174,11 @@ public class DataStaticService extends Ops {
|
|
|
for (DataMap map : dataMapDetail) {
|
|
|
String jythm = String.valueOf(map.get("交易主体户名"));
|
|
|
String jydszh = String.valueOf(map.get("交易对手账号"));
|
|
|
+ if (StringUtils.isBlank(jythm) || "null".equals(jythm)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
String jdlx = String.valueOf(map.get("借贷类型"));
|
|
|
- if (!jdlx.equals("借") || !jdlx.equals("贷")) {
|
|
|
+ if (!jdlx.equals("借") && !jdlx.equals("贷")) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -184,24 +186,28 @@ public class DataStaticService extends Ops {
|
|
|
if (!userList.contains(jythm)) {
|
|
|
Map<String, Object> userMap = new HashMap<>();
|
|
|
List<DataMap> dataMaps1 = personzhmcMap.get(jythm);
|
|
|
- userMap.put("id", dataMaps1.get(0).get("_id"));
|
|
|
- userMap.put("name", dataMaps1.get(0).get("账户名称"));
|
|
|
- userMap.put("relationPersons", dataMaps1);
|
|
|
- userMap.put("type", "主");
|
|
|
- partyDataList.add(userMap);
|
|
|
- userList.add(jythm);
|
|
|
+ if (CollectionUtils.isNotEmpty(dataMaps1)) {
|
|
|
+ userMap.put("id", String.valueOf(dataMaps1.get(0).get("_id")));
|
|
|
+ userMap.put("name", dataMaps1.get(0).get("账户名称"));
|
|
|
+ userMap.put("relationPersons", dataMaps1);
|
|
|
+ userMap.put("type", "主");
|
|
|
+ partyDataList.add(userMap);
|
|
|
+ userList.add(jythm);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (!usermcList.contains(jydszh)) {
|
|
|
Map<String, Object> userMap = new HashMap<>();
|
|
|
List<DataMap> dataMaps1 = personMap.get(jydszh);
|
|
|
- String cid = String.valueOf(dataMaps1.get(0).get("_id"));
|
|
|
- userMap.put("id", cid);
|
|
|
- userMap.put("name", dataMaps1.get(0).get("账户"));
|
|
|
- userMap.put("relationPersons", dataMaps1);
|
|
|
- userMap.put("type", "从");
|
|
|
- partyDataList.add(userMap);
|
|
|
- usermcList.add(jydszh);
|
|
|
+ if (CollectionUtils.isNotEmpty(dataMaps1)) {
|
|
|
+ String cid = String.valueOf(dataMaps1.get(0).get("_id"));
|
|
|
+ userMap.put("id", cid);
|
|
|
+ userMap.put("name", dataMaps1.get(0).get("账号"));
|
|
|
+ userMap.put("relationPersons", dataMaps1);
|
|
|
+ userMap.put("type", "从");
|
|
|
+ partyDataList.add(userMap);
|
|
|
+ usermcList.add(jydszh);
|
|
|
+ }
|
|
|
}
|
|
|
//增加线上数据
|
|
|
Map<String, Object> total = new HashMap<>();
|
|
@@ -212,43 +218,43 @@ public class DataStaticService extends Ops {
|
|
|
String userAllId = "";
|
|
|
if (jdlx.equals("借")) {
|
|
|
List<DataMap> dataMaps1 = personzhmcMap.get(jythm);
|
|
|
- String one = String.valueOf(dataMaps1.get(0).get("_id"));
|
|
|
- party1.put("id", one);
|
|
|
- party1.put("name", dataMaps1.get(0).get("账户名称"));
|
|
|
-
|
|
|
List<DataMap> dataMaps2 = personMap.get(jydszh);
|
|
|
- String two = String.valueOf(dataMaps2.get(0).get("_id"));
|
|
|
- party2.put("id", two);
|
|
|
- party2.put("name", dataMaps2.get(0).get("账号"));
|
|
|
- userAllId = one + "-" + two;
|
|
|
+ if(CollectionUtils.isNotEmpty(dataMaps1)&&CollectionUtils.isNotEmpty(dataMaps2)){
|
|
|
+ String one = String.valueOf(dataMaps1.get(0).get("_id"));
|
|
|
+ party1.put("id", one);
|
|
|
+ party1.put("name", dataMaps1.get(0).get("账户名称"));
|
|
|
+
|
|
|
+ String two = String.valueOf(dataMaps2.get(0).get("_id"));
|
|
|
+ party2.put("id", two);
|
|
|
+ party2.put("name", dataMaps2.get(0).get("账号"));
|
|
|
+ userAllId = one + "-" + two;
|
|
|
+ }
|
|
|
|
|
|
} else if (jdlx.equals("贷")) {
|
|
|
List<DataMap> dataMaps1 = personzhmcMap.get(jythm);
|
|
|
- String two = String.valueOf(dataMaps1.get(0).get("_id"));
|
|
|
- party2.put("id", dataMaps1.get(0).get("_id"));
|
|
|
- party2.put("name", dataMaps1.get(0).get("账户名称"));
|
|
|
-
|
|
|
List<DataMap> dataMaps2 = personMap.get(jydszh);
|
|
|
- String one = String.valueOf(dataMaps2.get(0).get("_id"));
|
|
|
- party1.put("id", dataMaps2.get(0).get("_id"));
|
|
|
- party1.put("name", dataMaps2.get(0).get("账号"));
|
|
|
- userAllId = one + "-" + two;
|
|
|
+ if(CollectionUtils.isNotEmpty(dataMaps1)&&CollectionUtils.isNotEmpty(dataMaps2)){
|
|
|
+ String two = String.valueOf(dataMaps1.get(0).get("_id"));
|
|
|
+ party2.put("id", dataMaps1.get(0).get("_id"));
|
|
|
+ party2.put("name", dataMaps1.get(0).get("账户名称"));
|
|
|
+
|
|
|
+ String one = String.valueOf(dataMaps2.get(0).get("_id"));
|
|
|
+ party1.put("id", dataMaps2.get(0).get("_id"));
|
|
|
+ party1.put("name", dataMaps2.get(0).get("账号"));
|
|
|
+ userAllId = one + "-" + two;
|
|
|
+ }
|
|
|
}
|
|
|
if (!userAllList.contains(userAllId)) {
|
|
|
//查询所有的数据
|
|
|
//查询所有的主体信息汇总
|
|
|
BigDecimal sum = BigDecimal.ZERO;
|
|
|
List<DataMap> dataDetailList = this.mongoTemplate.find((new Query(
|
|
|
- Criteria.where("modelId")
|
|
|
- .is(modelId)
|
|
|
- .and("fileId")
|
|
|
+ Criteria.where("fileId")
|
|
|
.is(dateFileId)
|
|
|
.and("交易主体户名")
|
|
|
.is(jythm)
|
|
|
.and("交易对手账号")
|
|
|
- .is(jydszh)
|
|
|
- .and("generated")
|
|
|
- .is(Boolean.TRUE))), DataMap.class);
|
|
|
+ .is(jydszh))), DataMap.class);
|
|
|
for (DataMap dataMap1 : dataDetailList) {
|
|
|
String jyje = String.valueOf(dataMap1.get("交易金额"));
|
|
|
sum.add(new BigDecimal(jyje));
|
|
@@ -266,25 +272,28 @@ public class DataStaticService extends Ops {
|
|
|
}
|
|
|
dataMap.put("partyData", partyDataList);
|
|
|
dataMap.put("relationshipGraph", relationshipGraphList);
|
|
|
-
|
|
|
Mapped mapped = Mapped.OK();
|
|
|
- mapped.put("result", dataMaps);
|
|
|
+ if(partyDataList.size()>1000){
|
|
|
+ return Mapped.ERROR("节点超过300个,请重新查询");
|
|
|
+ }
|
|
|
+
|
|
|
+ mapped.put("result", dataMap);
|
|
|
return mapped;
|
|
|
}
|
|
|
|
|
|
- public List<Criteria>getQuery(){
|
|
|
- List<Criteria>dataList=new ArrayList<>();
|
|
|
- List<String>filedsList=Lists.newArrayList("交易对手账号","交易对手户名");
|
|
|
- List<String>noQueryData=Lists.newArrayList(
|
|
|
- "公司","慈善","红十字","店","工作室","商行","中心","经营部","水果行","餐厅","超市","市场","商贸","西饼屋","科技","酒楼","停车场","ETC","etc","服务","批发",
|
|
|
- "渔场","浴场","设计","物业","咨询","批发","合作社","工厂","鞋厂","动物园","植物园","土黑猪","猫狗","学校","学院","大学","棋牌","娱乐","袜厂","制品厂","加油站",
|
|
|
- "体育馆","研究所","保健院","龙虾","羊蝎子","足道","公安局","税务局","法院","菜馆","棋牌","水产行","海鲜行","公司","服饰","服装","基金","宠物","车行","保险","理财",
|
|
|
- "支付宝","财付通","apple","烟酒","经营者","商户"
|
|
|
+ public List<Criteria> getQuery() {
|
|
|
+ List<Criteria> dataList = new ArrayList<>();
|
|
|
+ List<String> filedsList = Lists.newArrayList("交易对手账号", "交易对手户名");
|
|
|
+ List<String> noQueryData = Lists.newArrayList(
|
|
|
+ "公司", "慈善", "红十字", "店", "工作室", "商行", "中心", "经营部", "水果行", "餐厅", "超市", "市场", "商贸", "西饼屋", "科技", "酒楼", "停车场", "ETC", "etc", "服务", "批发",
|
|
|
+ "渔场", "浴场", "设计", "物业", "咨询", "批发", "合作社", "工厂", "鞋厂", "动物园", "植物园", "土黑猪", "猫狗", "学校", "学院", "大学", "棋牌", "娱乐", "袜厂", "制品厂", "加油站",
|
|
|
+ "体育馆", "研究所", "保健院", "龙虾", "羊蝎子", "足道", "公安局", "税务局", "法院", "菜馆", "棋牌", "水产行", "海鲜行", "公司", "服饰", "服装", "基金", "宠物", "车行", "保险", "理财",
|
|
|
+ "支付宝", "财付通", "apple", "烟酒", "经营者", "商户"
|
|
|
);
|
|
|
for (String s : filedsList) {
|
|
|
for (String noQueryDatum : noQueryData) {
|
|
|
Criteria newCri = new Criteria(s);
|
|
|
- Pattern compile = Pattern.compile("^((?!" + noQueryDatum+ ").)*$",Pattern.CASE_INSENSITIVE);
|
|
|
+ Pattern compile = Pattern.compile("^((?!" + noQueryDatum + ").)*$", Pattern.CASE_INSENSITIVE);
|
|
|
newCri.regex(compile);
|
|
|
dataList.add(newCri);
|
|
|
}
|