From 7cbe1610b87da19ed8a146a09b1117f92d9d3d98 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 19 九月 2025 17:30:37 +0800 Subject: [PATCH] 2025.9.19 1. 联合前端调试数据产品接口(待完成) --- src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/SearchServiceImpl.kt | 78 +++++++++++++++++++-------------------- 1 files changed, 38 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 c7be139..e0f8796 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 @@ -1,5 +1,6 @@ package cn.flightfeather.supervision.lightshare.service.impl +import cn.flightfeather.supervision.business.bgtask.ReportTaskCtrl import cn.flightfeather.supervision.business.report.DataSource import cn.flightfeather.supervision.business.report.DbMapper import cn.flightfeather.supervision.business.report.file.ReportOne @@ -12,6 +13,7 @@ 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 @@ -62,11 +64,12 @@ 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, + private val dbMapper: DbMapper, + private val reportTaskCtrl: ReportTaskCtrl, ) : SearchService { - - private val dateUtil = DateUtil() override fun writeToFile(config: ExcelConfigVo, mode: Int) { val dbMapper = DbMapper( @@ -96,20 +99,6 @@ } override fun getExcel(config: ExcelConfigVo, response: HttpServletResponse): Boolean { - val dbMapper = DbMapper( - scenseMapper, - problemlistMapper, - problemtypeMapper, - subtaskMapper, - monitorobjectversionMapper, - sceneConstructionSiteMapper, - sceneMixingPlantMapper, - sceneStorageYardMapper, - sceneWharfMapper, - taskMapper, - evaluationruleMapper, evaluationsubruleMapper, evaluationMapper, itemevaluationMapper, - ledgerSubTypeMapper, ledgerRecordMapper, userinfoMapper, userMapMapper, townMapper - ) val dataSource = DataSource(config, dbMapper) val t = when (config.mode) { 1 -> ReportOne(dataSource) @@ -119,25 +108,26 @@ else -> ReportOne(dataSource) } val fileName = t.getReportName() - val fName = URLEncoder.encode(fileName, "UTF-8") - response.apply { - setHeader("Content-Disposition", "attachment;filename=$fName") - setHeader("fileName", fName) - addHeader("Access-Control-Expose-Headers", "fileName") - contentType = "application/vnd.ms-excel;charset=UTF-8" - setHeader("Pragma", "no-cache") - setHeader("Cache-Control", "no-cache") - setDateHeader("Expires", 0) - } - val p = "$filePath/autoscore/" val file = File(p + fileName) if (config.forceUpdate || !file.exists()) { - t.toFile(p) + val downloadUrl = "/autoscore/${fileName}" + reportTaskCtrl.startTask(t, downloadUrl) + return false + } else { + val fName = Base64.getEncoder().encodeToString(fileName.toByteArray()) + response.apply { + setHeader("Content-Disposition", "attachment;filename=$fName") + setHeader("fileName", fName) + addHeader("Access-Control-Expose-Headers", "fileName") + contentType = "application/vnd.ms-excel;charset=UTF-8" + setHeader("Pragma", "no-cache") + setHeader("Cache-Control", "no-cache") + setDateHeader("Expires", 0) + } + response.outputStream.write(file.readBytes()) + return true } - response.outputStream.write(file.readBytes()) - - return true } override fun getSubTaskDetail(config: ExcelConfigVo): SubTaskTableVo { @@ -256,9 +246,9 @@ } //寤虹珛绗竴灞傜洰褰曪紝鍖呭惈鎵�鏈夌殑浠诲姟 - val time = dateUtil.DateToString(Date(), "yyyy-MM-dd_HH-mm-ss") + 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 + imgPath + File.separator + "temp" + File.separator + time var file = File(basePath) var i = 1 while (file.exists() && i <= 100) { @@ -310,7 +300,7 @@ createCriteria().andEqualTo("businessguid", p.guid) }).forEach { m -> val picPath = - Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + m.extension1 + m.guid + ".jpg" + imgPath + 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) @@ -349,9 +339,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 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 + imgPath + File.separator + "temp" + File.separator + topTask.name val file = File(basePath) if (!file.exists()) { file.mkdirs() @@ -370,7 +360,7 @@ //寤虹珛涓�涓瓙浠诲姟鏂囦欢澶� var subTaskFilePath = "${basePath}${File.separator}(${ - dateUtil.DateToString( + DateUtil.DateToString( it.planstarttime, DateUtil.DateStyle.YYYY_MM_DD_CN ) @@ -420,7 +410,7 @@ u.forEach { f -> val picPath = - Constant.DEFAULT_FILE_PATH + File.separator + "images" + File.separator + f.extension1 + f.guid + ".jpg" + imgPath + File.separator + f.extension1 + f.guid + ".jpg" val fromFile = File(picPath) val picName = f.description val toFile = File(pPath + File.separator + picName) @@ -537,10 +527,11 @@ ledgerSubTypeMapper, ledgerRecordMapper, userinfoMapper, userMapMapper, townMapper ) val task = - taskService.getByDistrictCode(config.districtCode, config.startTime)?.takeIf { it.isNotEmpty() }?.get(0) + taskService.getByDistrictCode(config.districtCode, config.startTime).takeIf { it.isNotEmpty() }?.get(0) config.topTaskGuid = task?.tguid ?: "" + config.allScene = false val dataSource = mutableListOf<DataSource>() - config.sceneType = Constant.SceneType.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()) @@ -560,15 +551,22 @@ } 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) -- Gitblit v1.9.3