| | |
| | | package cn.flightfeather.supervision.lightshare.service.impl |
| | | |
| | | import cn.flightfeather.supervision.common.exception.BizException |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Evaluationrule |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Evaluationsubrule |
| | | import cn.flightfeather.supervision.domain.ds1.entity.Evaluationsubrule2 |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationruleMapper |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationsubruleMapper |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.EvaluationsubruleMapper2 |
| | | import cn.flightfeather.supervision.domain.ds1.repository.EvaluationRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.EvaluationRuleRep |
| | | import cn.flightfeather.supervision.domain.ds1.repository.SceneRep |
| | | import cn.flightfeather.supervision.lightshare.service.EvaluationsubruleService |
| | | import cn.flightfeather.supervision.lightshare.vo.ScoreDetail |
| | | import org.springframework.stereotype.Service |
| | | import tk.mybatis.mapper.entity.Example |
| | | |
| | | @Service |
| | | class EvaluationsubruleServiceImpl ( |
| | | val evaluationsubruleMapper: EvaluationsubruleMapper, |
| | | val evaluationruleMapper: EvaluationruleMapper |
| | | ):EvaluationsubruleService { |
| | | class EvaluationsubruleServiceImpl( |
| | | val evaluationsubruleMapper2: EvaluationsubruleMapper2, |
| | | val evaluationsubruleMapper: EvaluationsubruleMapper, |
| | | val evaluationruleMapper: EvaluationruleMapper, |
| | | private val evaluationRep: EvaluationRep, |
| | | private val evaluationRuleRep: EvaluationRuleRep, |
| | | private val sceneRep: SceneRep, |
| | | ) : EvaluationsubruleService { |
| | | |
| | | override fun findOne(id: String): Evaluationsubrule = evaluationsubruleMapper.selectByPrimaryKey(id) |
| | | override fun findOne(id: String): Evaluationsubrule2 = evaluationsubruleMapper2.selectByPrimaryKey(id) |
| | | |
| | | override fun findAll(): MutableList<Evaluationsubrule> = evaluationsubruleMapper.selectAll() |
| | | |
| | | override fun save(evaluationsubrule: Evaluationsubrule): Int = evaluationsubruleMapper.insert(evaluationsubrule) |
| | | override fun save(evaluationsubrule: Evaluationsubrule2): Int = evaluationsubruleMapper2.insert(evaluationsubrule) |
| | | |
| | | override fun update(evaluationsubrule: Evaluationsubrule): Int = evaluationsubruleMapper.updateByPrimaryKey(evaluationsubrule) |
| | | override fun update(evaluationsubrule: Evaluationsubrule2): Int = |
| | | evaluationsubruleMapper2.updateByPrimaryKey(evaluationsubrule) |
| | | |
| | | override fun delete(id: String): Int = evaluationsubruleMapper.deleteByPrimaryKey(id) |
| | | override fun delete(id: String): Int = evaluationsubruleMapper2.deleteByPrimaryKey(id) |
| | | |
| | | override fun findByRuleId(erguid: String): List<Evaluationsubrule> { |
| | | val example = Example(Evaluationsubrule::class.java) |
| | | val criteria = example.createCriteria() |
| | | criteria.andEqualTo("erguid", erguid) |
| | | example.orderBy("extension1").desc() |
| | | return evaluationsubruleMapper.selectByExample(example) |
| | | override fun findByRuleId(erguid: String): List<Evaluationsubrule2> { |
| | | return evaluationRuleRep.findSubRule(erguid) |
| | | } |
| | | |
| | | override fun search(districtCode: String, sceneTypeId: String, version: String?): List<Evaluationsubrule> { |
| | | val result = mutableListOf<Evaluationsubrule>() |
| | | override fun search(districtCode: String, sceneTypeId: String, version: String?): List<Evaluationsubrule2> { |
| | | val result = mutableListOf<Evaluationsubrule2>() |
| | | evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply { |
| | | createCriteria().andEqualTo("districtcode", districtCode) |
| | | .andEqualTo("scensetypeid", sceneTypeId) |
| | | }).takeIf { it.isNotEmpty() }?.get(0)?.let {rule -> |
| | | evaluationsubruleMapper.selectByExample(Example(Evaluationsubrule::class.java).apply { |
| | | .andEqualTo("scensetypeid", sceneTypeId) |
| | | }).takeIf { it.isNotEmpty() }?.get(0)?.let { rule -> |
| | | evaluationsubruleMapper2.selectByExample(Example(Evaluationsubrule2::class.java).apply { |
| | | createCriteria().andEqualTo("erguid", rule.guid) |
| | | }) |
| | | }?.also { |
| | |
| | | |
| | | return result |
| | | } |
| | | |
| | | override fun getAutoScore(subTaskId: String): ScoreDetail { |
| | | //场景信息 |
| | | val scene = sceneRep.findBySubTask(subTaskId) |
| | | //总分 |
| | | val evaluation = evaluationRep.findBySubtask(subTaskId) |
| | | //子规则逐条得分 |
| | | val subRuleScores = evaluationRep.findItemEvaluation(subTaskId) |
| | | if (subRuleScores.isEmpty()) throw BizException("无评估记录") |
| | | //评分总规则 |
| | | val rule = evaluationRuleRep.findAutoEvaluationRule(subTaskId) ?: throw BizException("未找到相关自动评估规则") |
| | | //总规则对应的评分子规则 |
| | | val subRules = evaluationRuleRep.findSubRule(rule.guid) |
| | | //查询结果 |
| | | val result = ScoreDetail() |
| | | result.status = if (scene?.extension1.equals("1")) "在建" else "完工" |
| | | |
| | | result.updateTime = evaluation?.updatedate |
| | | subRules.forEach { |
| | | it.ertype ?: return@forEach |
| | | result.addDetail(result.details, it, it.ertype!! - 1, subRuleScores, false) |
| | | } |
| | | result.calScore() |
| | | |
| | | return result |
| | | } |
| | | } |