|
@@ -2,7 +2,6 @@ package cn.com.yusys.yusp.service.impl;
|
|
|
|
|
|
|
|
import cn.com.yusys.yusp.commons.exception.BizException;
|
|
import cn.com.yusys.yusp.commons.exception.BizException;
|
|
|
import cn.com.yusys.yusp.config.DataDictionary;
|
|
import cn.com.yusys.yusp.config.DataDictionary;
|
|
|
-import cn.com.yusys.yusp.domain.dto.TagSumDto;
|
|
|
|
|
import cn.com.yusys.yusp.domain.entity.AitagTagInfoEntity;
|
|
import cn.com.yusys.yusp.domain.entity.AitagTagInfoEntity;
|
|
|
import cn.com.yusys.yusp.domain.vo.*;
|
|
import cn.com.yusys.yusp.domain.vo.*;
|
|
|
import cn.com.yusys.yusp.mapper.AitagTagDailyAggDao;
|
|
import cn.com.yusys.yusp.mapper.AitagTagDailyAggDao;
|
|
@@ -11,17 +10,18 @@ import cn.com.yusys.yusp.mapper.AitagTagLogDao;
|
|
|
import cn.com.yusys.yusp.domain.entity.AitagTagLogEntity;
|
|
import cn.com.yusys.yusp.domain.entity.AitagTagLogEntity;
|
|
|
import cn.com.yusys.yusp.service.AitagTagLogService;
|
|
import cn.com.yusys.yusp.service.AitagTagLogService;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
|
|
+import java.net.URL;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
@@ -46,49 +46,42 @@ public class AitagTagLogServiceImpl extends ServiceImpl<AitagTagLogDao, AitagTag
|
|
|
@Override
|
|
@Override
|
|
|
public DataOverviewVo dataOverview(SmartTaggingResultVo taggingResult) {
|
|
public DataOverviewVo dataOverview(SmartTaggingResultVo taggingResult) {
|
|
|
DataOverviewVo dataOverview = new DataOverviewVo();
|
|
DataOverviewVo dataOverview = new DataOverviewVo();
|
|
|
- TagSumDto tagSumVo = this.baseMapper.selectTagCount(taggingResult);
|
|
|
|
|
- dataOverview.setCountNum(tagSumVo.getTotalCount());
|
|
|
|
|
- if(tagSumVo.getTotalDuration() !=0){
|
|
|
|
|
- BigDecimal result = new BigDecimal(tagSumVo.getTotalDuration())
|
|
|
|
|
- .divide(new BigDecimal(tagSumVo.getTotalCount()), 10, RoundingMode.HALF_UP);
|
|
|
|
|
- dataOverview.setAvgProcessingDuration(result.toString());
|
|
|
|
|
- }else{
|
|
|
|
|
- dataOverview.setAvgProcessingDuration("0");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ Integer totalCnt = this.baseMapper.selectTagCount(taggingResult);
|
|
|
|
|
+ dataOverview.setCountNum(totalCnt);
|
|
|
|
|
|
|
|
LambdaQueryWrapper<AitagTagLogEntity> queryCount = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<AitagTagLogEntity> queryCount = new LambdaQueryWrapper<>();
|
|
|
- LambdaQueryWrapper<AitagTagLogEntity> queryAccurateMarks = new LambdaQueryWrapper<>();
|
|
|
|
|
|
|
+ LambdaQueryWrapper<AitagTagLogEntity> queryAgreeTags = new LambdaQueryWrapper<>();
|
|
|
if (StringUtils.isNotBlank(taggingResult.getCategoryCode())) {
|
|
if (StringUtils.isNotBlank(taggingResult.getCategoryCode())) {
|
|
|
queryCount.eq(AitagTagLogEntity::getCategoryCode, taggingResult.getCategoryCode());
|
|
queryCount.eq(AitagTagLogEntity::getCategoryCode, taggingResult.getCategoryCode());
|
|
|
- queryAccurateMarks.eq(AitagTagLogEntity::getCategoryCode, taggingResult.getCategoryCode());
|
|
|
|
|
|
|
+ queryAgreeTags.eq(AitagTagLogEntity::getCategoryCode, taggingResult.getCategoryCode());
|
|
|
}
|
|
}
|
|
|
if (StringUtils.isNotBlank(taggingResult.getStartTaggingTime())){
|
|
if (StringUtils.isNotBlank(taggingResult.getStartTaggingTime())){
|
|
|
queryCount.ge(AitagTagLogEntity::getInsertTime, taggingResult.getStartTaggingTime());
|
|
queryCount.ge(AitagTagLogEntity::getInsertTime, taggingResult.getStartTaggingTime());
|
|
|
- queryAccurateMarks.ge(AitagTagLogEntity::getInsertTime, taggingResult.getStartTaggingTime());
|
|
|
|
|
|
|
+ queryAgreeTags.ge(AitagTagLogEntity::getInsertTime, taggingResult.getStartTaggingTime());
|
|
|
}
|
|
}
|
|
|
if (StringUtils.isNotBlank(taggingResult.getEndTaggingTime())){
|
|
if (StringUtils.isNotBlank(taggingResult.getEndTaggingTime())){
|
|
|
queryCount.le(AitagTagLogEntity::getInsertTime, taggingResult.getEndTaggingTime());
|
|
queryCount.le(AitagTagLogEntity::getInsertTime, taggingResult.getEndTaggingTime());
|
|
|
- queryAccurateMarks.le(AitagTagLogEntity::getInsertTime, taggingResult.getEndTaggingTime());
|
|
|
|
|
|
|
+ queryAgreeTags.le(AitagTagLogEntity::getInsertTime, taggingResult.getEndTaggingTime());
|
|
|
}
|
|
}
|
|
|
queryCount.in(AitagTagLogEntity::getState, DataDictionary.RESULT_PUSHED,DataDictionary.MANAGER_CONFIRMED);
|
|
queryCount.in(AitagTagLogEntity::getState, DataDictionary.RESULT_PUSHED,DataDictionary.MANAGER_CONFIRMED);
|
|
|
- queryAccurateMarks.in(AitagTagLogEntity::getState, DataDictionary.RESULT_PUSHED,DataDictionary.MANAGER_CONFIRMED);
|
|
|
|
|
|
|
+ queryAgreeTags.in(AitagTagLogEntity::getState, DataDictionary.RESULT_PUSHED,DataDictionary.MANAGER_CONFIRMED);
|
|
|
|
|
|
|
|
- Integer countNum = this.baseMapper.selectCount(queryCount);
|
|
|
|
|
|
|
+ Integer totalConfirmedCnt = this.baseMapper.selectCount(queryCount);
|
|
|
|
|
|
|
|
- queryAccurateMarks.eq(AitagTagLogEntity::getFeedback,FEEDBACK_RESULT_AGREE);
|
|
|
|
|
- Integer accurateMarksNum = this.baseMapper.selectCount(queryAccurateMarks);
|
|
|
|
|
- BigDecimal accurateRate = calculateAccuracy(accurateMarksNum, countNum);
|
|
|
|
|
|
|
+ queryAgreeTags.eq(AitagTagLogEntity::getFeedback,FEEDBACK_RESULT_AGREE);
|
|
|
|
|
+ Integer agreeTagNum = this.baseMapper.selectCount(queryAgreeTags);
|
|
|
|
|
+ BigDecimal accurateRate = calculateAccuracy(agreeTagNum, totalConfirmedCnt);
|
|
|
|
|
|
|
|
- dataOverview.setAccurateNum(countNum);
|
|
|
|
|
|
|
+ dataOverview.setAccurateNum(totalConfirmedCnt);
|
|
|
dataOverview.setAccurateRate(accurateRate+"%");
|
|
dataOverview.setAccurateRate(accurateRate+"%");
|
|
|
- if(countNum == 0){
|
|
|
|
|
|
|
+ if(totalConfirmedCnt == 0){
|
|
|
dataOverview.setManualAdjustRate("0%");
|
|
dataOverview.setManualAdjustRate("0%");
|
|
|
}else{
|
|
}else{
|
|
|
dataOverview.setManualAdjustRate(BigDecimal.valueOf(100).subtract(accurateRate)
|
|
dataOverview.setManualAdjustRate(BigDecimal.valueOf(100).subtract(accurateRate)
|
|
|
.setScale(2, RoundingMode.HALF_UP)+"%");
|
|
.setScale(2, RoundingMode.HALF_UP)+"%");
|
|
|
}
|
|
}
|
|
|
- dataOverview.setManualAdjustCount(countNum-accurateMarksNum);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ dataOverview.setManualAdjustCount(totalConfirmedCnt-agreeTagNum);
|
|
|
|
|
+ dataOverview.setTaggedUnconfirmed(totalCnt-totalConfirmedCnt);
|
|
|
return dataOverview;
|
|
return dataOverview;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -110,22 +103,22 @@ public class AitagTagLogServiceImpl extends ServiceImpl<AitagTagLogDao, AitagTag
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public IPage<AitagTagLogEntity> taggingDetails(TaggingTransactionReqVo aitagTagLogEntity) {
|
|
|
|
|
- LambdaQueryWrapper<AitagTagLogEntity> queryCount = new LambdaQueryWrapper<>();
|
|
|
|
|
- if (StringUtils.isNotBlank(aitagTagLogEntity.getCategoryCode())) {
|
|
|
|
|
- queryCount.eq(AitagTagLogEntity::getCategoryCode, aitagTagLogEntity.getCategoryCode());
|
|
|
|
|
|
|
+ public IPage<AitagTagLogEntity> taggingDetails(TaggingTransactionReqVo transactionReqVo) {
|
|
|
|
|
+ LambdaQueryWrapper<AitagTagLogEntity> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getCategoryCode())) {
|
|
|
|
|
+ queryWrapper.eq(AitagTagLogEntity::getCategoryCode, transactionReqVo.getCategoryCode());
|
|
|
}
|
|
}
|
|
|
- if (StringUtils.isNotBlank(aitagTagLogEntity.getStartTaggingTime())){
|
|
|
|
|
- queryCount.ge(AitagTagLogEntity::getInsertTime, aitagTagLogEntity.getStartTaggingTime());
|
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getStartTaggingTime())){
|
|
|
|
|
+ queryWrapper.ge(AitagTagLogEntity::getInsertTime, transactionReqVo.getStartTaggingTime());
|
|
|
}
|
|
}
|
|
|
- if (StringUtils.isNotBlank(aitagTagLogEntity.getEndTaggingTime())){
|
|
|
|
|
- queryCount.le(AitagTagLogEntity::getInsertTime, aitagTagLogEntity.getEndTaggingTime());
|
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getEndTaggingTime())){
|
|
|
|
|
+ queryWrapper.le(AitagTagLogEntity::getInsertTime, transactionReqVo.getEndTaggingTime());
|
|
|
}
|
|
}
|
|
|
- if (StringUtils.isNotBlank(aitagTagLogEntity.getLoanApplicationNo())){
|
|
|
|
|
- queryCount.le(AitagTagLogEntity::getBusinessAttr, aitagTagLogEntity.getLoanApplicationNo());
|
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getLoanApplicationNo())){
|
|
|
|
|
+ queryWrapper.le(AitagTagLogEntity::getBusinessAttr, transactionReqVo.getLoanApplicationNo());
|
|
|
}
|
|
}
|
|
|
- return this.baseMapper.selectPage(new Page<>(aitagTagLogEntity.getPage(),
|
|
|
|
|
- aitagTagLogEntity.getSize()),queryCount);
|
|
|
|
|
|
|
+ return this.baseMapper.selectPage(new Page<>(transactionReqVo.getPage(),
|
|
|
|
|
+ transactionReqVo.getSize()),queryWrapper);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -167,6 +160,25 @@ public class AitagTagLogServiceImpl extends ServiceImpl<AitagTagLogDao, AitagTag
|
|
|
return aggDao.selectTagDistStats(resultVo);
|
|
return aggDao.selectTagDistStats(resultVo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<AitagTagLogEntity> queryList(TaggingTransactionReqVo transactionReqVo) {
|
|
|
|
|
+ LambdaQueryWrapper<AitagTagLogEntity> queryCount = new LambdaQueryWrapper<>();
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getCategoryCode())) {
|
|
|
|
|
+ queryCount.eq(AitagTagLogEntity::getCategoryCode, transactionReqVo.getCategoryCode());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getStartTaggingTime())){
|
|
|
|
|
+ queryCount.ge(AitagTagLogEntity::getInsertTime, transactionReqVo.getStartTaggingTime());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getEndTaggingTime())){
|
|
|
|
|
+ queryCount.le(AitagTagLogEntity::getInsertTime, transactionReqVo.getEndTaggingTime());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(transactionReqVo.getLoanApplicationNo())){
|
|
|
|
|
+ queryCount.le(AitagTagLogEntity::getBusinessAttr, transactionReqVo.getLoanApplicationNo());
|
|
|
|
|
+ }
|
|
|
|
|
+ return this.baseMapper.selectList(queryCount);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 计算准确率
|
|
* 计算准确率
|