| | |
| | | package cn.flightfeather.supervision.lightshare.service.impl |
| | | |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Evaluationrule |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Evaluationsubrule |
| | | import cn.flightfeather.supervision.common.exception.BizException |
| | | import cn.flightfeather.supervision.domain.ds1.entity.* |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationruleMapper |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationsubruleMapper |
| | | import cn.flightfeather.supervision.domain.ds1.repository.EvaluationRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.EvaluationRuleRep |
| | | import cn.flightfeather.supervision.lightshare.service.EvaluationsubruleService |
| | | import cn.flightfeather.supervision.lightshare.vo.EvaluationVo |
| | | import cn.flightfeather.supervision.lightshare.vo.SubEvaluationVo |
| | | import cn.flightfeather.supervision.lightshare.vo.ThirdEvaluationVo |
| | | import org.springframework.stereotype.Service |
| | | import tk.mybatis.mapper.entity.Example |
| | | |
| | | @Service |
| | | class EvaluationsubruleServiceImpl ( |
| | | val evaluationsubruleMapper: EvaluationsubruleMapper, |
| | | val evaluationruleMapper: EvaluationruleMapper |
| | | ):EvaluationsubruleService { |
| | | class EvaluationsubruleServiceImpl( |
| | | val evaluationsubruleMapper: EvaluationsubruleMapper, |
| | | val evaluationruleMapper: EvaluationruleMapper, |
| | | private val evaluationRep: EvaluationRep, |
| | | private val evaluationRuleRep: EvaluationRuleRep, |
| | | ) : EvaluationsubruleService { |
| | | |
| | | override fun findOne(id: String): Evaluationsubrule = evaluationsubruleMapper.selectByPrimaryKey(id) |
| | | |
| | |
| | | |
| | | override fun save(evaluationsubrule: Evaluationsubrule): Int = evaluationsubruleMapper.insert(evaluationsubrule) |
| | | |
| | | override fun update(evaluationsubrule: Evaluationsubrule): Int = evaluationsubruleMapper.updateByPrimaryKey(evaluationsubrule) |
| | | override fun update(evaluationsubrule: Evaluationsubrule): Int = |
| | | evaluationsubruleMapper.updateByPrimaryKey(evaluationsubrule) |
| | | |
| | | override fun delete(id: String): Int = evaluationsubruleMapper.deleteByPrimaryKey(id) |
| | | |
| | |
| | | val result = mutableListOf<Evaluationsubrule>() |
| | | evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply { |
| | | createCriteria().andEqualTo("districtcode", districtCode) |
| | | .andEqualTo("scensetypeid", sceneTypeId) |
| | | }).takeIf { it.isNotEmpty() }?.get(0)?.let {rule -> |
| | | .andEqualTo("scensetypeid", sceneTypeId) |
| | | }).takeIf { it.isNotEmpty() }?.get(0)?.let { rule -> |
| | | evaluationsubruleMapper.selectByExample(Example(Evaluationsubrule::class.java).apply { |
| | | createCriteria().andEqualTo("erguid", rule.guid) |
| | | }) |
| | |
| | | |
| | | return result |
| | | } |
| | | |
| | | override fun getAutoScore(subTaskId: String): List<EvaluationVo> { |
| | | //子规则逐条得分 |
| | | val subRuleScores = evaluationRep.findItemEvaluation(subTaskId) |
| | | //评分总规则 |
| | | val rule = evaluationRuleRep.findAutoEvaluationRule(subTaskId) ?: throw BizException("未找到相关自动评估规则") |
| | | //总规则对应的评分子规则 |
| | | val subRules = evaluationRuleRep.findSubRule(rule.guid) |
| | | //查询结果 |
| | | val resultList = mutableListOf<EvaluationVo>() |
| | | |
| | | var _group = 0 |
| | | subRules.forEach { |
| | | when (it.ertype) { |
| | | 2 -> resultList.add(EvaluationVo().apply { |
| | | id = it.guid |
| | | title = it.itemname |
| | | scoreMode = it.extension1 |
| | | gradeMode = it.extension2 |
| | | maxScore = when (gradeMode) { |
| | | "minus_mode" -> it.minscore?.minus(it.maxscore ?: 0) ?: 0 |
| | | "add_mode" -> it.maxscore ?: 0 |
| | | else -> it.minscore?.minus(it.maxscore ?: 0) ?: 0 |
| | | } |
| | | selectMode = it.extension3 |
| | | |
| | | //如果有得分记录,则改变状态为选中 |
| | | for (s in subRuleScores) { |
| | | if (it.guid == s.esrguid) { |
| | | select = s.extension1 == "true" |
| | | break |
| | | } |
| | | } |
| | | }) |
| | | 3 -> { |
| | | for (r in resultList) { |
| | | if (it.fatherid == r.id) { |
| | | r.subList.add(SubEvaluationVo().apply { |
| | | id = it.guid |
| | | title2 = it.itemname |
| | | gradeMode = it.extension2 |
| | | selectMode = it.extension3 |
| | | score = when (gradeMode) { |
| | | "minus_mode" -> it.minscore?.minus(it.maxscore ?: 0) ?: 0 |
| | | "add_mode" -> it.maxscore ?: 0 |
| | | else -> it.minscore?.minus(it.maxscore ?: 0) ?: 0 |
| | | } |
| | | group = _group++ |
| | | |
| | | //如果有得分记录,则改变状态为选中 |
| | | for (s in subRuleScores) { |
| | | if (it.guid == s.esrguid) { |
| | | select = s.extension1 == "true" |
| | | break |
| | | } |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | 4 -> { |
| | | resultList.forEach{ r -> |
| | | //4级的评估项直接附属于2级评估项 |
| | | if (r.id == it.fatherid) { |
| | | if (r.subList.isEmpty()) { |
| | | r.subList.add(SubEvaluationVo().apply { |
| | | placeholder = true |
| | | id = it.guid |
| | | title2 = r.title |
| | | score = r.maxScore |
| | | gradeMode = r.gradeMode |
| | | selectMode = r.selectMode |
| | | group = _group++ |
| | | }) |
| | | } |
| | | r.subList[0].sub2.add(ThirdEvaluationVo().apply { |
| | | id = it.guid |
| | | content = it.itemname |
| | | score = when (r.subList[0].gradeMode) { |
| | | "minus_mode" -> r.maxScore.plus(it.maxscore ?: 0) |
| | | "add_mode" -> it.maxscore ?: 0 |
| | | else -> r.maxScore.plus(it.maxscore ?: 0) |
| | | } |
| | | //如果有得分记录,则改变状态为选中 |
| | | for (s in subRuleScores) { |
| | | if (it.guid == s.esrguid) { |
| | | select = s.extension1 == "true" |
| | | break |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | r.subList.forEach { sr -> |
| | | if (sr.id == it.fatherid){ |
| | | sr.sub2.add(ThirdEvaluationVo().apply { |
| | | id = it.guid |
| | | content = it.itemname |
| | | score = when (sr.gradeMode) { |
| | | "minus_mode" -> sr.score.plus(it.maxscore ?: 0) |
| | | "add_mode" -> it.maxscore ?: 0 |
| | | else -> sr.score.plus(it.maxscore ?: 0) |
| | | } |
| | | //如果有得分记录,则改变状态为选中 |
| | | for (s in subRuleScores) { |
| | | if (it.guid == s.esrguid) { |
| | | select = s.extension1 == "true" |
| | | break |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return resultList |
| | | |
| | | } |
| | | } |