From 16b961c2210fe29fd494ac1f9d830dd93503961f Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 02 八月 2024 17:25:17 +0800 Subject: [PATCH] 1. 新增监测设备的管理功能 --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt | 127 +++++++++++++++++++++++++++++------------- 1 files changed, 87 insertions(+), 40 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt index 1cdc743..2a55953 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt @@ -6,9 +6,13 @@ import cn.flightfeather.supervision.business.report.file.ReportThree import cn.flightfeather.supervision.business.report.file.ReportTwo import cn.flightfeather.supervision.business.report.template.* +import cn.flightfeather.supervision.common.exception.BizException import cn.flightfeather.supervision.common.utils.* import cn.flightfeather.supervision.domain.ds1.entity.* import cn.flightfeather.supervision.domain.ds1.mapper.* +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.domain.ds2.mapper.LedgerRecordMapper import cn.flightfeather.supervision.domain.ds2.mapper.LedgerSubTypeMapper import cn.flightfeather.supervision.domain.ds2.mapper.UserMapMapper @@ -17,14 +21,13 @@ import cn.flightfeather.supervision.lightshare.vo.* import com.github.pagehelper.PageHelper import org.springframework.beans.BeanUtils +import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Service import tk.mybatis.mapper.entity.Example import java.io.File import java.io.FileInputStream import java.io.FileOutputStream -import java.io.OutputStream import java.net.URLEncoder -import java.nio.charset.Charset import java.nio.charset.StandardCharsets import java.util.* import javax.servlet.http.HttpServletResponse @@ -35,34 +38,37 @@ */ @Service class SearchServiceImpl( - val userinfoMapper: UserinfoMapper, - val subtaskMapper: SubtaskMapper, - val scenseMapper: ScenseMapper, - val sceneConstructionSiteMapper: SceneConstructionSiteMapper, - val sceneMixingPlantMapper: SceneMixingPlantMapper, - val sceneStorageYardMapper: SceneStorageYardMapper, - val sceneWharfMapper: SceneWharfMapper, - val problemlistMapper: ProblemlistMapper, - val problemtypeMapper: ProblemtypeMapper, - val townMapper: TownMapper, - val mediafileMapper: MediafileMapper, - val scoreMapper: ScoreMapper, - val inspectionMapper: InspectionMapper, - val taskMapper: TaskMapper, - val monitorobjectversionMapper: MonitorobjectversionMapper, - val evaluationruleMapper: EvaluationruleMapper, - val evaluationsubruleMapper: EvaluationsubruleMapper2, - val evaluationMapper: EvaluationMapper, - val itemevaluationMapper: ItemevaluationMapper, - val ledgerSubTypeMapper: LedgerSubTypeMapper, - val ledgerRecordMapper: LedgerRecordMapper, - val userMapMapper: UserMapMapper, - val taskService: TaskService + val userinfoMapper: UserinfoMapper, + val subtaskMapper: SubtaskMapper, + val scenseMapper: ScenseMapper, + val sceneConstructionSiteMapper: SceneConstructionSiteMapper, + val sceneMixingPlantMapper: SceneMixingPlantMapper, + val sceneStorageYardMapper: SceneStorageYardMapper, + val sceneWharfMapper: SceneWharfMapper, + val problemlistMapper: ProblemlistMapper, + val problemtypeMapper: ProblemtypeMapper, + val townMapper: TownMapper, + val mediafileMapper: MediafileMapper, + val scoreMapper: ScoreMapper, + val inspectionMapper: InspectionMapper, + val taskMapper: TaskMapper, + val monitorobjectversionMapper: MonitorobjectversionMapper, + val evaluationruleMapper: EvaluationruleMapper, + val evaluationsubruleMapper: EvaluationsubruleMapper2, + val evaluationMapper: EvaluationMapper, + val itemevaluationMapper: ItemevaluationMapper, + val ledgerSubTypeMapper: LedgerSubTypeMapper, + val ledgerRecordMapper: LedgerRecordMapper, + val userMapMapper: UserMapMapper, + val taskService: TaskService, + private val evaluationRep: EvaluationRep, + private val evaluationRuleRep: EvaluationRuleRep, + private val sceneRep: SceneRep, + @Value("\${filePath}") var filePath: String, + @Value("\${imgPath}") var imgPath: String, ) : SearchService { - private val dateUtil = DateUtil() - - override fun writeToFile(config: ExcelConfigVo, mode:Int) { + override fun writeToFile(config: ExcelConfigVo, mode: Int) { val dbMapper = DbMapper( scenseMapper, problemlistMapper, @@ -75,7 +81,7 @@ sceneWharfMapper, taskMapper, evaluationruleMapper, evaluationsubruleMapper, evaluationMapper, itemevaluationMapper, - ledgerSubTypeMapper, ledgerRecordMapper, userinfoMapper, userMapMapper, townMapper + ledgerSubTypeMapper, ledgerRecordMapper, userinfoMapper, userMapMapper, townMapper ) val dataSource = DataSource(config, dbMapper) val t = when (mode) { @@ -124,7 +130,7 @@ setDateHeader("Expires", 0) } - val p = Constant.DEFAULT_FILE_PATH + "/files/autoscore/" + val p = "$filePath/autoscore/" val file = File(p + fileName) if (config.forceUpdate || !file.exists()) { t.toFile(p) @@ -250,8 +256,9 @@ } //寤虹珛绗竴灞傜洰褰曪紝鍖呭惈鎵�鏈夌殑浠诲姟 - val time = dateUtil.DateToString(Date(), "yyyy-MM-dd_HH-mm-ss") - var basePath = Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + "temp" + File.separator + time + val time = DateUtil.DateToString(Date(), "yyyy-MM-dd_HH-mm-ss") + var basePath = + Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + "temp" + File.separator + time var file = File(basePath) var i = 1 while (file.exists() && i <= 100) { @@ -302,7 +309,8 @@ mediafileMapper.selectByExample(Example(Mediafile::class.java).apply { createCriteria().andEqualTo("businessguid", p.guid) }).forEach { m -> - val picPath = Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + m.extension1 + m.guid + ".jpg" + val picPath = + Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + m.extension1 + m.guid + ".jpg" val fromFile = File(picPath) val picName = p.problemname + "_" + p.location + "($y).jpg" val toFile = File(pPath + File.separator + picName) @@ -341,8 +349,9 @@ override fun downloadPic2(sceneType: Int, topTaskId: String, response: HttpServletResponse): HttpServletResponse { //寤虹珛绗竴灞傜洰褰曪紝鍖呭惈鎵�鏈夌殑浠诲姟 val topTask = taskMapper.selectByPrimaryKey(topTaskId) - val time = dateUtil.DateToString(Date(), "yyyy-MM-dd_HH-mm-ss") - val basePath = Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + "temp" + File.separator + topTask.name + val time = DateUtil.DateToString(Date(), "yyyy-MM-dd_HH-mm-ss") + val basePath = + Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + "temp" + File.separator + topTask.name val file = File(basePath) if (!file.exists()) { file.mkdirs() @@ -361,7 +370,7 @@ //寤虹珛涓�涓瓙浠诲姟鏂囦欢澶� var subTaskFilePath = "${basePath}${File.separator}(${ - dateUtil.DateToString( + DateUtil.DateToString( it.planstarttime, DateUtil.DateStyle.YYYY_MM_DD_CN ) @@ -451,7 +460,13 @@ return response } - override fun searchScore4JingAn(token: String, year: Int, month: Int, page: Int?, perPage: Int?): BaseResponse<List<ScoreVo>> { + override fun searchScore4JingAn( + token: String, + year: Int, + month: Int, + page: Int?, + perPage: Int?, + ): BaseResponse<List<ScoreVo>> { if (token != "jingan") { return BaseResponse(false) } @@ -474,7 +489,12 @@ return BaseResponse(true, head = DataHead(p.pageNum, p.pages), data = result) } - override fun searchSubTaskByKeyword(userId: String, keyword: String, page: Int, perPage: Int): BaseResponse<List<SubtaskVo>> { + override fun searchSubTaskByKeyword( + userId: String, + keyword: String, + page: Int, + perPage: Int, + ): BaseResponse<List<SubtaskVo>> { val userInfo = userinfoMapper.selectByPrimaryKey(userId) if (userInfo.usertypeid?.toInt() == 3) return BaseResponse(false, "浼佷笟鐢ㄦ埛鏃犳煡璇㈡潈闄�")//浼佷笟鐢ㄦ埛鏃犳硶鏌ヨ val result = mutableListOf<SubtaskVo>() @@ -516,10 +536,11 @@ evaluationruleMapper, evaluationsubruleMapper, evaluationMapper, itemevaluationMapper, ledgerSubTypeMapper, ledgerRecordMapper, userinfoMapper, userMapMapper, townMapper ) - val task = taskService.getByDistrictCode(config.districtCode, config.startTime)?.takeIf { it.isNotEmpty() }?.get(0) + val task = + taskService.getByDistrictCode(config.districtCode, config.startTime)?.takeIf { it.isNotEmpty() }?.get(0) config.topTaskGuid = task?.tguid ?: "" val dataSource = mutableListOf<DataSource>() - config.sceneType = Constant.ScenseType.TYPE1.value.toInt() + config.sceneType = Constant.SceneType.TYPE1.value.toInt() dataSource.add(DataSource(config, dbMapper)) // val config2 = config.copy(sceneType = Constant.ScenseType.TYPE2.value.toInt()) @@ -537,4 +558,30 @@ return BaseTableVo(result.first, result.second) } + + override fun getScoreDetail(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, true) + } + result.calScore() + + return result + } } \ No newline at end of file -- Gitblit v1.9.3