From fe031e01cc1737c2f05a133fde7c36c7a2a7b4b4 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期三, 21 一月 2026 17:38:32 +0800
Subject: [PATCH] 2026.1.21 1. 新增完善台账复制逻辑
---
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/EvaluationsubruleServiceImpl.kt | 68 ++++++++++++++++++++++++++++++---
1 files changed, 61 insertions(+), 7 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 d80effc..7abce00 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
@@ -4,13 +4,17 @@
import cn.flightfeather.supervision.domain.entity.Evaluationrule
import cn.flightfeather.supervision.domain.entity.Evaluationsubrule
import cn.flightfeather.supervision.domain.entity.Itemevaluation
+import cn.flightfeather.supervision.domain.enumeration.AssessmentRuleType
+import cn.flightfeather.supervision.domain.enumeration.SceneType
import cn.flightfeather.supervision.domain.mapper.*
+import cn.flightfeather.supervision.infrastructure.utils.DateUtil
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
+import java.time.LocalDateTime
@Service
class EvaluationsubruleServiceImpl(
@@ -38,9 +42,21 @@
return evaluationsubruleMapper.selectByExample(example)
}
- override fun getScore(userId: String, time: String): List<EvaluationVo> {
+ override fun getScore(userId: String, time: String, platform:String?): List<EvaluationVo> {
+ val list = time.split("-")
+ var endM = list[1].toInt()
+ val list2 = list[0].split("/")
+ val year = list2[0].toInt()
+ var startM = list2[1].toInt()
+ var st = LocalDateTime.of(year, startM, 1, 0, 0, 0, 0)
+ var et = LocalDateTime.of(year, endM, 1, 0, 0, 0, 0).plusMonths(1)
+
val userinfo = userinfoMapper.selectByPrimaryKey(userId) ?: return emptyList()
- val sceneType = userinfo.extension2
+ var sceneType = userinfo.extension2
+ // FIXME: 2022/11/8 涓存椂娣诲姞杩囧害鍔熻兘锛屾彁渚涘井淇″皬绋嬪簭鍓嶇姹戒慨绫诲瀷鐨勫満鏅崟鐙殑璇勪及娓呭崟 锛屽満鏅被鍨嬩负 -7
+ if (platform == "weixin" && sceneType == SceneType.VehicleRepair.value.toString()) {
+ sceneType = "-7"
+ }
//璇勫垎鎬昏鍒�
val rules = evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply {
createCriteria().andEqualTo("scensetypeid", sceneType)
@@ -51,6 +67,16 @@
val rIdList = mutableListOf<String?>()
rules.forEach {
+ // 鎵惧埌鎬昏鍒�
+ if (it.ruletype == AssessmentRuleType.Total.value.toString()) {
+ val rulePeriod = it.scensesubtypeid?.toInt() ?: 1
+ DateUtil.getStartMonthByPeriod(startM, rulePeriod)?.let {s ->
+ startM = s
+ endM = startM + rulePeriod - 1
+ st = LocalDateTime.of(year, startM, 1, 0, 0, 0, 0)
+ et = LocalDateTime.of(year, endM, 1, 0, 0, 0, 0).plusMonths(1)
+ }
+ }
rIdList.add(it.guid)
}
@@ -67,7 +93,11 @@
val ruleScore = evaluationMapper.selectByExample(Example(Evaluation::class.java).apply {
createCriteria().andIn("stguid", rIdList)//瑙勫垯id
.andEqualTo("evaluatorguid", userId)//鐢ㄦ埛id
- .andEqualTo("scensename", time)//璇勪及鍛ㄦ湡锛屼緥锛�2020/6-6
+ and(
+ createCriteria().orEqualTo("scensename", time)//璇勪及鍛ㄦ湡锛屼緥锛�2020/6-6
+ .orBetween("createdate", st, et)
+ )
+ orderBy("createdate").desc()
})
//瀛愯鍒欓�愭潯寰楀垎
val subRuleScores = if (ruleScore.isEmpty()) {
@@ -88,7 +118,14 @@
2 -> resultList.add(EvaluationVo().apply {
id = it.guid
title1 = it.itemname
- score = it.minscore?.minus(it.maxscore ?: 0) ?: 0
+ scoreMode = it.extension1
+ gradeMode = it.extension2
+ 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
+ }
+ selectMode = it.extension3
//濡傛灉鏈夊緱鍒嗚褰曪紝鍒欐敼鍙樼姸鎬佷负閫変腑
for (s in subRuleScores) {
@@ -104,7 +141,13 @@
r.sub1.add(SubEvaluationVo().apply {
id = it.guid
title2 = it.itemname
- score = it.minscore?.minus(it.maxscore ?: 0) ?: 0
+ 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++
//濡傛灉鏈夊緱鍒嗚褰曪紝鍒欐敼鍙樼姸鎬佷负閫変腑
@@ -121,6 +164,7 @@
}
4 -> {
resultList.forEach{ r ->
+ //4绾х殑璇勪及椤圭洿鎺ラ檮灞炰簬2绾ц瘎浼伴」
if (r.id == it.fatherid) {
if (r.sub1.isEmpty()) {
r.sub1.add(SubEvaluationVo().apply {
@@ -128,13 +172,19 @@
id = it.guid
title2 = r.title1
score = r.score
+ gradeMode = r.gradeMode
+ selectMode = r.selectMode
group = _group++
})
}
r.sub1[0].sub2.add(ThirdEvaluationVo().apply {
id = it.guid
content = it.itemname
- score = r.score.plus(it.maxscore ?: 0)
+ score = when (r.sub1[0].gradeMode) {
+ "minus_mode" -> r.score.plus(it.maxscore ?: 0)
+ "add_mode" -> it.maxscore ?: 0
+ else -> r.score.plus(it.maxscore ?: 0)
+ }
//濡傛灉鏈夊緱鍒嗚褰曪紝鍒欐敼鍙樼姸鎬佷负閫変腑
for (s in subRuleScores) {
if (it.guid == s.esrguid) {
@@ -149,7 +199,11 @@
sr.sub2.add(ThirdEvaluationVo().apply {
id = it.guid
content = it.itemname
- score = sr.score.plus(it.maxscore ?: 0)
+ 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) {
--
Gitblit v1.9.3