企标评分

This commit is contained in:
zhaokaiyao@91isoft.com
2021-12-05 20:23:21 +08:00
parent 7cd3262d3f
commit 8ae7ed4dd9
7 changed files with 125 additions and 19 deletions
@@ -5,6 +5,7 @@ import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.entity.FormVO;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.service.IQualityEvaluationService;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
@@ -16,6 +17,7 @@ import io.swagger.annotations.Api;
import com.adc.da.base.web.BaseController;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
@@ -47,14 +49,17 @@ public class QualityEvaluationController extends BaseController<QualityEvaluatio
item.setUserId(userId);
item.setLawId(standId);
if ( item.getEvaluationIndex()!=null && item.getScore()!=null && "3U9lb".equals( item.getEvaluationIndex() ) ){
if ( item.getEvaluationIndex()!=null && "3U9lb".equals( item.getEvaluationIndex() ) ){
switch (item.getScore()){
case "0":
item.setScore("-1");
case "1":
item.setScore("-2");
}
JSONObject jsonObject = JSONObject.parseObject(form.getFormData());
// switch (item.getScore()){
// case "0":
// item.setScore("-1");
// case "1":
// item.setScore("-2");
// }
item.setScore(jsonObject.getString("revise"));
item.setReason(jsonObject.getString("reviseReason"));
}
@@ -93,4 +98,13 @@ public class QualityEvaluationController extends BaseController<QualityEvaluatio
return Result.success(history);
}
@ApiOperation("查询评价分数")
@GetMapping("getScore")
public ResponseMessage<Map<String,Double>> getScore(String lawId){
Map<String, Double> score = iQualityEvaluationService.getScore(lawId);
return Result.success(score);
}
}
@@ -1,7 +1,14 @@
package com.adc.da.slrs.sarEnterpriseStandardEvaluation.dao;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.entity.QualityEvaluation;
import com.adc.da.slrs.sarStandUnqualified.entity.BusinessDeptIssue;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -13,4 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface QualityEvaluationDao extends BaseMapper<QualityEvaluation> {
public IPage<QualityEvaluation> getHistory(IPage<QualityEvaluation> page,@Param(Constants.WRAPPER) QueryWrapper<QualityEvaluation> queryWrapper);
}
@@ -51,5 +51,9 @@ public class EvaluationIndex extends BaseEntity {
@TableField("three_index_title")
private String threeIndexTitle;
@ApiModelProperty(value = "指标值类型")
@TableField("value_type")
private String valueType;
}
@@ -12,4 +12,7 @@ public class FormVO {
private String standId;
private String userId;
private String formData;
}
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -22,4 +23,7 @@ public interface IQualityEvaluationService extends IService<QualityEvaluation> {
public List<QualityEvaluation> getEvaluationForm(QualityEvaluation query);
Map<String,Double> getScore(String lawId);
}
@@ -1,7 +1,9 @@
package com.adc.da.slrs.sarEnterpriseStandardEvaluation.service.impl;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.entity.EvaluationIndex;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.entity.QualityEvaluation;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.dao.QualityEvaluationDao;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.service.IEvaluationIndexService;
import com.adc.da.slrs.sarEnterpriseStandardEvaluation.service.IQualityEvaluationService;
import com.adc.da.util.UUIDUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -11,6 +13,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.PipedReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -35,6 +39,11 @@ public class QualityEvaluationServiceImpl extends ServiceImpl<QualityEvaluationD
@Override
public Boolean submitEvaluationForm(List<QualityEvaluation> form) {
QueryWrapper<QualityEvaluation> queryWrapper = new QueryWrapper<>();
//
// queryWrapper.eq("user_id",form.get)
// .eq("evaluation_type","dynamic");
this.remove(queryWrapper);
form.forEach(item->item.setId( UUIDUtils.randomUUID20()));
return this.saveBatch(form);
}
@@ -44,9 +53,31 @@ public class QualityEvaluationServiceImpl extends ServiceImpl<QualityEvaluationD
QueryWrapper<QualityEvaluation> queryWrapper = new QueryWrapper<>();
Page<QualityEvaluation> page = new Page<>(query.getPage(), query.getPageSize());
if (query.getUserId()!=null){ //指定用户
queryWrapper.eq("user_id", query.getUserId())
.orderBy(true,true, "crate_time","modify_time");
}
if (query.getEvaluationType()!=null){ //指定评价指标
queryWrapper.eq("evaluation_type",query.getEvaluationType());
}
return qualityEvaluationDao.getHistory(page,queryWrapper);
}
@Override
public List<QualityEvaluation> getEvaluationForm(QualityEvaluation query) {
QueryWrapper<QualityEvaluation> queryWrapper = new QueryWrapper<>();
Page<QualityEvaluation> page = new Page<>(query.getPage(), query.getPageSize());
queryWrapper.select("UNAME as userName","score","reason","create_time","modify_time")
.eq("law_id",query.getLawId()) //企标id
.last("JOIN ts_user user ON quality_evaluation.user_id = user.USID");
.eq("law_id",query.getLawId()) //企标id
.last("JOIN ts_user user ON quality_evaluation.user_id = user.USID");
if (query.getUserId()!=null){ //指定用户
@@ -59,23 +90,44 @@ public class QualityEvaluationServiceImpl extends ServiceImpl<QualityEvaluationD
}
return this.baseMapper.selectPage(page,queryWrapper);
return this.baseMapper.selectList(queryWrapper);
}
@Autowired
private IEvaluationIndexService iEvaluationIndexService;
@Override
public List<QualityEvaluation> getEvaluationForm(QualityEvaluation query) {
public Map<String, Double> getScore(String lawId) {
QueryWrapper<QualityEvaluation> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("law_id",query.getLawId());
queryWrapper.eq("law_id",lawId);
List<QualityEvaluation> list = this.list(queryWrapper);
List<QualityEvaluation> qualityEvaluations = this.baseMapper.selectList(queryWrapper);
Map<String, List<QualityEvaluation>> collect = qualityEvaluations.stream()
.collect(Collectors.groupingBy(QualityEvaluation::getEvaluationType));
return null;
return list.stream()
.collect(Collectors.groupingBy(QualityEvaluation::getEvaluationType,
Collectors.averagingDouble(item -> getScoreSingle(item))));
}
private Double getScoreSingle(QualityEvaluation item){
QueryWrapper<EvaluationIndex> indexQuery = new QueryWrapper<>();
indexQuery.select("code","weight");
List<EvaluationIndex> indexList = iEvaluationIndexService.list(indexQuery);
Map<String, Float> weightMap = indexList.stream()
.collect(Collectors.toMap(EvaluationIndex::getCode, obj -> Float.valueOf(obj.getWeight())));
String score = item.getScore();
return ((score == null || (Float.valueOf(item.getScore()) < 0.0)) ? 0.0 : Float.valueOf(score) * weightMap.get(item.getEvaluationIndex()));
}
}