From 5670e4a15fba292ef5f8fb90e96072de976bb621 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 28 六月 2022 14:00:22 +0800 Subject: [PATCH] 1. 中小企业守法自助相关接口更新 --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/EvaluationsubruleServiceImpl.kt | 147 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 145 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/EvaluationsubruleServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/EvaluationsubruleServiceImpl.kt index 65bf182..d80effc 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/EvaluationsubruleServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/EvaluationsubruleServiceImpl.kt @@ -1,13 +1,25 @@ package cn.flightfeather.supervision.lightshare.service.Impl +import cn.flightfeather.supervision.domain.entity.Evaluation +import cn.flightfeather.supervision.domain.entity.Evaluationrule import cn.flightfeather.supervision.domain.entity.Evaluationsubrule -import cn.flightfeather.supervision.domain.mapper.EvaluationsubruleMapper +import cn.flightfeather.supervision.domain.entity.Itemevaluation +import cn.flightfeather.supervision.domain.mapper.* 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):EvaluationsubruleService { +class EvaluationsubruleServiceImpl( + val evaluationsubruleMapper: EvaluationsubruleMapper, + private val userinfoMapper: UserinfoMapper, + private val evaluationruleMapper: EvaluationruleMapper, + private val evaluationMapper: EvaluationMapper, + private val itemevaluationMapper: ItemevaluationMapper +):EvaluationsubruleService { override fun findOne(id: String): Evaluationsubrule = evaluationsubruleMapper.selectByPrimaryKey(id) @@ -25,4 +37,135 @@ criteria.andEqualTo("erguid", erguid) return evaluationsubruleMapper.selectByExample(example) } + + override fun getScore(userId: String, time: String): List<EvaluationVo> { + val userinfo = userinfoMapper.selectByPrimaryKey(userId) ?: return emptyList() + val sceneType = userinfo.extension2 + //璇勫垎鎬昏鍒� + val rules = evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply { + createCriteria().andEqualTo("scensetypeid", sceneType) +// .andEqualTo("ruletype", "1") + .andIsNull("tasktypeid") + }) + if (rules.isEmpty()) return emptyList() + + val rIdList = mutableListOf<String?>() + rules.forEach { + rIdList.add(it.guid) + } + + //鎬昏鍒欏搴旂殑璇勫垎瀛愯鍒� + val subRules = mutableListOf<Evaluationsubrule>() + val sr = evaluationsubruleMapper.selectByExample(Example(Evaluationsubrule::class.java).apply { + createCriteria().andIn("erguid", rIdList) + orderBy("ertype") + orderBy("displayid") + }) + subRules.addAll(sr) + + //鎬昏鍒欑殑寰楀垎 + val ruleScore = evaluationMapper.selectByExample(Example(Evaluation::class.java).apply { + createCriteria().andIn("stguid", rIdList)//瑙勫垯id + .andEqualTo("evaluatorguid", userId)//鐢ㄦ埛id + .andEqualTo("scensename", time)//璇勪及鍛ㄦ湡锛屼緥锛�2020/6-6 + }) + //瀛愯鍒欓�愭潯寰楀垎 + val subRuleScores = if (ruleScore.isEmpty()) { + mutableListOf<Itemevaluation>() + } else { + val scoreIds = mutableListOf<String?>() + ruleScore.forEach { scoreIds.add(it.guid) } + itemevaluationMapper.selectByExample(Example(Itemevaluation::class.java).apply { + createCriteria().andIn("sguid", scoreIds) + }) + } + + val resultList = mutableListOf<EvaluationVo>() + + var _group = 0 + subRules.forEach { + when (it.ertype) { + 2 -> resultList.add(EvaluationVo().apply { + id = it.guid + title1 = it.itemname + score = it.minscore?.minus(it.maxscore ?: 0) ?: 0 + + //濡傛灉鏈夊緱鍒嗚褰曪紝鍒欐敼鍙樼姸鎬佷负閫変腑 + 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.sub1.add(SubEvaluationVo().apply { + id = it.guid + title2 = it.itemname + score = 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 -> + if (r.id == it.fatherid) { + if (r.sub1.isEmpty()) { + r.sub1.add(SubEvaluationVo().apply { + placeholder = true + id = it.guid + title2 = r.title1 + score = r.score + group = _group++ + }) + } + r.sub1[0].sub2.add(ThirdEvaluationVo().apply { + id = it.guid + content = it.itemname + score = r.score.plus(it.maxscore ?: 0) + //濡傛灉鏈夊緱鍒嗚褰曪紝鍒欐敼鍙樼姸鎬佷负閫変腑 + for (s in subRuleScores) { + if (it.guid == s.esrguid) { + select = s.extension1 == "true" + break + } + } + }) + } else { + r.sub1.forEach { sr -> + if (sr.id == it.fatherid){ + sr.sub2.add(ThirdEvaluationVo().apply { + id = it.guid + content = it.itemname + score = sr.score.plus(it.maxscore ?: 0) + //濡傛灉鏈夊緱鍒嗚褰曪紝鍒欐敼鍙樼姸鎬佷负閫変腑 + for (s in subRuleScores) { + if (it.guid == s.esrguid) { + select = s.extension1 == "true" + break + } + } + }) + } + } + } + } + } + } + } + + return resultList + } } \ No newline at end of file -- Gitblit v1.9.3