Browse Source

车辆信息更新,更新车牌实际持有人

master
583641232@qq.com 1 year ago
parent
commit
963c8db0b5
  1. 8
      cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/CarInfoController.java
  2. 2
      cas-system/src/main/java/com/inscloudtech/datacenter/domain/CarInfo.java
  3. 2
      cas-system/src/main/java/com/inscloudtech/datacenter/service/PlateNumberService.java
  4. 33
      cas-system/src/main/java/com/inscloudtech/datacenter/service/impl/CarInfoServiceImpl.java
  5. 104
      cas-system/src/main/java/com/inscloudtech/datacenter/service/impl/PlateNumberServiceImpl.java

8
cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/CarInfoController.java

@ -1,6 +1,7 @@
package com.inscloudtech.web.controller.datacenter; package com.inscloudtech.web.controller.datacenter;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import com.inscloudtech.analysiscenter.domain.AnalysisDto; import com.inscloudtech.analysiscenter.domain.AnalysisDto;
import com.inscloudtech.bankStatementAnalysis.service.ImportService; import com.inscloudtech.bankStatementAnalysis.service.ImportService;
import com.inscloudtech.common.annotation.Log; import com.inscloudtech.common.annotation.Log;
@ -78,6 +79,8 @@ public class CarInfoController extends BaseController {
@Log(title = "重点人员资产-车辆信息", businessType = BusinessType.INSERT) @Log(title = "重点人员资产-车辆信息", businessType = BusinessType.INSERT)
@PostMapping() @PostMapping()
public R add(@RequestBody CarInfo bo) { public R add(@RequestBody CarInfo bo) {
bo.setCreateBy(getUsername());
bo.setCreateTime(new DateTime());
iCarInfoService.insertByBo(bo); iCarInfoService.insertByBo(bo);
return R.ok(); return R.ok();
} }
@ -89,7 +92,10 @@ public class CarInfoController extends BaseController {
@UpdateLog(title = "重点人员资产-车辆信息",mapperClass = CarInfoMapper.class, businessType = BusinessType.UPDATE) @UpdateLog(title = "重点人员资产-车辆信息",mapperClass = CarInfoMapper.class, businessType = BusinessType.UPDATE)
@PutMapping() @PutMapping()
public R edit(@RequestBody CarInfo bo) { public R edit(@RequestBody CarInfo bo) {
return R.ok(iCarInfoService.updateByBo(bo));
bo.setUpdateBy(getUsername());
bo.setUpdateTime(new DateTime());
return R.ok(
iCarInfoService.updateByBo(bo));
} }
/** /**

2
cas-system/src/main/java/com/inscloudtech/datacenter/domain/CarInfo.java

@ -100,9 +100,11 @@ public class CarInfo extends BaseEntity {
@TableField(updateStrategy = FieldStrategy.IGNORED) @TableField(updateStrategy = FieldStrategy.IGNORED)
private String bgc; private String bgc;
@DeduplicationField
private String caseId; private String caseId;
@IndexField(fieldType = FieldType.KEYWORD) @IndexField(fieldType = FieldType.KEYWORD)
@DeduplicationField
private String analysisResultId; private String analysisResultId;
@ExcelIgnore @ExcelIgnore

2
cas-system/src/main/java/com/inscloudtech/datacenter/service/PlateNumberService.java

@ -66,4 +66,6 @@ public interface PlateNumberService {
void save2AnalysisResult(AnalysisDto dto); void save2AnalysisResult(AnalysisDto dto);
void invoke(String caseId); void invoke(String caseId);
void updateHolder(String caseId);
} }

33
cas-system/src/main/java/com/inscloudtech/datacenter/service/impl/CarInfoServiceImpl.java

@ -19,6 +19,7 @@ import com.inscloudtech.datacenter.mapper.CarInfoMapper;
import com.inscloudtech.datacenter.mapper.es.CarInfoEsMapper; import com.inscloudtech.datacenter.mapper.es.CarInfoEsMapper;
import com.inscloudtech.datacenter.service.ICarInfoService; import com.inscloudtech.datacenter.service.ICarInfoService;
import com.inscloudtech.bankStatementAnalysis.helper.HelperUtil; import com.inscloudtech.bankStatementAnalysis.helper.HelperUtil;
import com.inscloudtech.datacenter.service.PlateNumberService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.easyes.core.biz.SAPageInfo; import org.dromara.easyes.core.biz.SAPageInfo;
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper; import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
@ -48,6 +49,9 @@ public class CarInfoServiceImpl implements ICarInfoService {
private final CarInfoEsMapper esMapper; private final CarInfoEsMapper esMapper;
private final PlateNumberService plateNumberService;
@Override @Override
public void analysisResultMerge(Map<String,String> sourceArIdTargetArIdMap) { public void analysisResultMerge(Map<String,String> sourceArIdTargetArIdMap) {
List<CarInfo> analysisReportList = baseMapper.selectList(new LambdaQueryWrapper<CarInfo>() List<CarInfo> analysisReportList = baseMapper.selectList(new LambdaQueryWrapper<CarInfo>()
@ -60,7 +64,8 @@ public class CarInfoServiceImpl implements ICarInfoService {
String targetArId = sourceArIdTargetArIdMap.get(sourceArId); String targetArId = sourceArIdTargetArIdMap.get(sourceArId);
for (CarInfo result : reports) { for (CarInfo result : reports) {
result.setAnalysisResultId(targetArId); result.setAnalysisResultId(targetArId);
String md5Id = HelperUtil.generateMD5(result.toString());
String uniqueKey = BeanUtils.getUniqueKey(result);
String md5Id = HelperUtil.generateMD5(uniqueKey);
result.setId(md5Id); result.setId(md5Id);
addList.add(result); addList.add(result);
} }
@ -87,7 +92,8 @@ public class CarInfoServiceImpl implements ICarInfoService {
for (CarInfo item : carInfos) { for (CarInfo item : carInfos) {
item.setCaseId(null); item.setCaseId(null);
item.setAnalysisResultId(analysisResultId); item.setAnalysisResultId(analysisResultId);
String md5Id = HelperUtil.generateMD5(item.toString());
String uniqueKey = BeanUtils.getUniqueKey(item);
String md5Id = HelperUtil.generateMD5(uniqueKey);
//未导入数据内部去重 //未导入数据内部去重
if(HelperUtil.deduplication(md5Id,uniqueKeySet)){ if(HelperUtil.deduplication(md5Id,uniqueKeySet)){
continue; continue;
@ -180,8 +186,13 @@ public class CarInfoServiceImpl implements ICarInfoService {
public Boolean insertByBo(CarInfo bo) { public Boolean insertByBo(CarInfo bo) {
boolean flag = baseMapper.insert(bo) > 0; boolean flag = baseMapper.insert(bo) > 0;
if (flag) { if (flag) {
BeanUtils.beanAttributeValueTrim(bo);
String uniqueKey = BeanUtils.getUniqueKey(bo);
String md5Id = HelperUtil.generateMD5(uniqueKey);
bo.setId(md5Id);
esMapper.insert(bo); esMapper.insert(bo);
} }
plateNumberService.updateHolder(bo.getCaseId());
return flag; return flag;
} }
@ -191,12 +202,14 @@ public class CarInfoServiceImpl implements ICarInfoService {
@Override @Override
@Transactional @Transactional
public Boolean updateByBo(CarInfo bo) { public Boolean updateByBo(CarInfo bo) {
CarInfo update = BeanUtil.toBean(bo, CarInfo.class);
boolean b = baseMapper.updateById(update) > 0;
if(b){
esMapper.updateById(update);
}
return b;
baseMapper.deleteById(bo.getId());
BeanUtils.beanAttributeValueTrim(bo);
String uniqueKey = BeanUtils.getUniqueKey(bo);
String md5Id = HelperUtil.generateMD5(uniqueKey);
bo.setId(md5Id);
esMapper.insert(bo);
plateNumberService.updateHolder(bo.getCaseId());
return true;
} }
/** /**
* 批量删除重点人员资产-车辆信息 * 批量删除重点人员资产-车辆信息
@ -269,6 +282,7 @@ public class CarInfoServiceImpl implements ICarInfoService {
if (CollectionUtil.isNotEmpty(updateList)) { if (CollectionUtil.isNotEmpty(updateList)) {
this.updateBatch(updateList); this.updateBatch(updateList);
} }
plateNumberService.updateHolder(caseId);
return true; return true;
} }
@ -364,7 +378,8 @@ public class CarInfoServiceImpl implements ICarInfoService {
e.printStackTrace(); e.printStackTrace();
} }
family.setCaseId(caseId); family.setCaseId(caseId);
String md5Id = HelperUtil.generateMD5(family.toString());
String uniqueKey = BeanUtils.getUniqueKey(family);
String md5Id = HelperUtil.generateMD5(caseId+uniqueKey);
//未导入数据内部去重 //未导入数据内部去重
if(HelperUtil.deduplication(md5Id,uniqueKeySet)){ if(HelperUtil.deduplication(md5Id,uniqueKeySet)){
continue; continue;

104
cas-system/src/main/java/com/inscloudtech/datacenter/service/impl/PlateNumberServiceImpl.java

@ -3,6 +3,7 @@ package com.inscloudtech.datacenter.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.inscloudtech.analysiscenter.domain.AnalysisDto; import com.inscloudtech.analysiscenter.domain.AnalysisDto;
@ -117,31 +118,31 @@ public class PlateNumberServiceImpl implements PlateNumberService {
} }
} }
} }
if(CollectionUtil.isEmpty(tempMap)){
List<PlateNumberInfo> tempAddList = BeanCopyUtils.copyList(plateNumberInfoList, PlateNumberInfo.class);
for (PlateNumberInfo plateNumberInfo : tempAddList) {
for (PlateNumberInfo plateNumberInfo : plateNumberInfoList) {
String bsHolder = plateNumberInfo.getBsHolder();
if (StrUtil.isEmpty(bsHolder)) {
plateNumberInfo.setHolder(holder);
plateNumberInfo.setHasDeal(1); plateNumberInfo.setHasDeal(1);
plateNumberInfo.setCreateTime(new Date()); plateNumberInfo.setCreateTime(new Date());
String uniqueKey = BeanUtils.getUniqueKey(plateNumberInfo); String uniqueKey = BeanUtils.getUniqueKey(plateNumberInfo);
String md5Id = HelperUtil.generateMD5(caseId+uniqueKey); String md5Id = HelperUtil.generateMD5(caseId+uniqueKey);
plateNumberInfo.setId(md5Id); plateNumberInfo.setId(md5Id);
plateNumberInfo.setCaseId(caseId); plateNumberInfo.setCaseId(caseId);
}
addList.addAll(tempAddList);
}else {
for (String bsHolder : tempMap.keySet()) {
addList.add(plateNumberInfo);
}else {
PlateNumberInfo add = new PlateNumberInfo(); PlateNumberInfo add = new PlateNumberInfo();
add.setPlateNumber(plateNumber); add.setPlateNumber(plateNumber);
add.setBsHolder(bsHolder); add.setBsHolder(bsHolder);
List<PlateNumberInfo> infos = tempMap.get(bsHolder); List<PlateNumberInfo> infos = tempMap.get(bsHolder);
List<String> uniqueSourceContent = infos.stream().filter(item->StrUtil.isNotEmpty(item.getSourceContent())) List<String> uniqueSourceContent = infos.stream().filter(item->StrUtil.isNotEmpty(item.getSourceContent()))
.map(PlateNumberInfo::getSourceContent)
.distinct()
.collect(Collectors.toList());
.map(PlateNumberInfo::getSourceContent)
.distinct()
.collect(Collectors.toList());
List<String> bankName = infos.stream().filter(item->StrUtil.isNotEmpty(item.getBankName())) List<String> bankName = infos.stream().filter(item->StrUtil.isNotEmpty(item.getBankName()))
.map(PlateNumberInfo::getBankName)
.distinct()
.collect(Collectors.toList());
.map(PlateNumberInfo::getBankName)
.distinct()
.collect(Collectors.toList());
// List<String> uniqueSourceFile = infos.stream().filter(item->StrUtil.isNotEmpty(item.getSourceFile())) // List<String> uniqueSourceFile = infos.stream().filter(item->StrUtil.isNotEmpty(item.getSourceFile()))
// .map(PlateNumberInfo::getSourceFile) // .map(PlateNumberInfo::getSourceFile)
// .distinct() // .distinct()
@ -149,9 +150,9 @@ public class PlateNumberServiceImpl implements PlateNumberService {
// add.setSourceFile(uniqueSourceFile.stream() // add.setSourceFile(uniqueSourceFile.stream()
// .collect(Collectors.joining(", "))); // .collect(Collectors.joining(", ")));
add.setSourceContent(uniqueSourceContent.stream() add.setSourceContent(uniqueSourceContent.stream()
.collect(Collectors.joining(", ")));
.collect(Collectors.joining(", ")));
add.setBankName(bankName.stream() add.setBankName(bankName.stream()
.collect(Collectors.joining(", ")));
.collect(Collectors.joining(", ")));
add.setHasDeal(1); add.setHasDeal(1);
add.setHolder(holder); add.setHolder(holder);
add.setCreateTime(new Date()); add.setCreateTime(new Date());
@ -162,7 +163,6 @@ public class PlateNumberServiceImpl implements PlateNumberService {
addList.add(add); addList.add(add);
} }
} }
} }
if(CollectionUtil.isNotEmpty(addList)){ if(CollectionUtil.isNotEmpty(addList)){
@ -170,26 +170,66 @@ public class PlateNumberServiceImpl implements PlateNumberService {
esMapper.insertBatch(addList); esMapper.insertBatch(addList);
} }
}
// String uniqueKey = BeanUtils.getUniqueKey(plateNumberInfo);
// String md5Id = HelperUtil.generateMD5(caseId+uniqueKey);
// numberInfoList.stream().forEach(item->{
// if (carInfoMap.containsKey(item.getPlateNumber())) {
// List<CarInfo> tempCarList = carInfoMap.get(item.getPlateNumber());
// for (CarInfo carInfo : tempCarList) {
// if(StrUtil.isEmpty(carInfo.getName())){
// item.setHolder(carInfo.getName());
// break;
// }
// }
// }
//// item.get
//
// });
/**
* 车辆信息有更新就更新实际持有人
*/
@Override
public void updateHolder(String caseId){
LambdaEsQueryWrapper<CarInfo> lqw = EsWrappers.lambdaQuery(CarInfo.class);
lqw.eq(CarInfo::getCaseId,caseId);
List<CarInfo> carInfos = carInfoEsMapper.selectList(lqw);
Map<String, List<CarInfo>> carInfoMap = carInfos.stream().filter(item -> StrUtil.isNotEmpty(item.getCarNo()))
.collect(Collectors.groupingBy(CarInfo::getCarNo));
PlateNumberInfo bo = new PlateNumberInfo();
bo.setCaseId(caseId);
}
List<PlateNumberInfo> numberInfoList = queryList(bo);
if(CollectionUtil.isEmpty(numberInfoList)){
return;
}
Map<String, List<PlateNumberInfo>> plateNumberInfoMap = numberInfoList.stream().filter(item -> StrUtil.isNotEmpty(item.getPlateNumber()))
.collect(Collectors.groupingBy(PlateNumberInfo::getPlateNumber));
List<PlateNumberInfo> updateList = new ArrayList<>();
for (String plateNumber : plateNumberInfoMap.keySet()) {
List<PlateNumberInfo> plateNumberInfoList = plateNumberInfoMap.get(plateNumber);
String holder = "";
if(carInfoMap.containsKey(plateNumber)){
List<CarInfo> tempCarInfos = carInfoMap.get(plateNumber);
for (CarInfo tempCarInfo : tempCarInfos) {
if(StrUtil.isNotEmpty(tempCarInfo.getName())){
holder = tempCarInfo.getName();
break;
}
}
}
for (PlateNumberInfo plateNumberInfo : plateNumberInfoList) {
plateNumberInfo.setHolder(holder);
updateList.add(plateNumberInfo);
}
}
//删除再新增不然id重复
if(CollectionUtil.isNotEmpty(updateList)){
List<String> idList = updateList.stream().map(PlateNumberInfo::getId).collect(Collectors.toList());
esMapper.deleteBatchIds(idList);
List<PlateNumberInfo> addList = new ArrayList<>();
for (PlateNumberInfo plateNumberInfo : updateList) {
String uniqueKey = BeanUtils.getUniqueKey(plateNumberInfo);
String md5Id = HelperUtil.generateMD5(caseId+uniqueKey);
plateNumberInfo.setId(md5Id);
plateNumberInfo.setUpdateTime(new DateTime());
addList.add(plateNumberInfo);
}
esMapper.insertBatch(addList);
}
}
/** /**
* 查询重点人员资产-车辆抓取 * 查询重点人员资产-车辆抓取

Loading…
Cancel
Save