| | |
| | | package cn.flightfeather.supervision.lightshare.service.impl |
| | | |
| | | import cn.flightfeather.supervision.business.report.DataSource |
| | | import cn.flightfeather.supervision.business.report.DbMapper |
| | | import cn.flightfeather.supervision.business.report.file.ReportOne |
| | | 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.utils.* |
| | | import cn.flightfeather.supervision.domain.ds1.entity.* |
| | | import cn.flightfeather.supervision.domain.ds1.mapper.* |
| | | import cn.flightfeather.supervision.domain.ds2.mapper.LedgerRecordMapper |
| | | import cn.flightfeather.supervision.domain.ds2.mapper.LedgerSubTypeMapper |
| | | import cn.flightfeather.supervision.domain.ds2.mapper.UserMapMapper |
| | | import cn.flightfeather.supervision.lightshare.service.SearchService |
| | | import cn.flightfeather.supervision.lightshare.vo.* |
| | | import com.github.pagehelper.PageHelper |
| | |
| | | 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 |
| | |
| | | */ |
| | | @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 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, |
| | | ) : SearchService { |
| | | |
| | | private val dateUtil = DateUtil() |
| | | |
| | | override fun writeToFile(config: ExcelConfigVo) { |
| | | val fileName = "target/${dateUtil.DateToString(Date(), "yyyy-MM-ddhhmmss")}.xls" |
| | | override fun writeToFile(config: ExcelConfigVo, mode:Int) { |
| | | 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 (mode) { |
| | | // //问题与整改跟踪汇总表 |
| | | // 0 -> ProDetailSummary(dataSource) |
| | | // //分街镇问题整改分析汇总表 |
| | | // 1 -> ProAnalysisSummary(dataSource) |
| | | // |
| | | // //规范性评估详情表 |
| | | // 2 -> ScoreDetailSummary(dataSource) |
| | | // //分街镇规范性分析表 |
| | | // 3 -> ScoreAnalysisSummary(dataSource) |
| | | // |
| | | // //问题与整改分类统计表 |
| | | // 4 -> ProTypeDetailSummary(dataSource) |
| | | // //问题与整改分类排名 |
| | | // 5 -> ProTypeRankSummary(dataSource) |
| | | // //月度主要或典型问题分析表 |
| | | // 6 -> ProTypeRankMainSummary(dataSource) |
| | | // //工地施工阶段问题分类分析表 |
| | | // 7 -> ProTypeStatusSummary(dataSource) |
| | | |
| | | val out = FileOutputStream(fileName) |
| | | // val heads = getTableTitles(config.sceneType, config.districtCode) |
| | | // val contents = getTableContents(config, heads.size) |
| | | val r = getTable(2, config) |
| | | ExcelUtil.write2(out, r.first, r.second) |
| | | 8 -> ReportOne(dataSource) |
| | | 9 -> ReportTwo(dataSource) |
| | | 10 -> ReportThree(dataSource) |
| | | |
| | | else -> null |
| | | } |
| | | // t?.execute() |
| | | t?.toFile("target/") |
| | | } |
| | | |
| | | override fun getExcel(config: ExcelConfigVo, response: HttpServletResponse): HttpServletResponse { |
| | | 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) |
| | | 2 -> ReportTwo(dataSource) |
| | | 3 -> ReportThree(dataSource) |
| | | |
| | | val fileName = "${dateUtil.DateToString(Date(), "yyyy-MM-dd hh:mm:ss")}.xls" |
| | | else -> ReportOne(dataSource) |
| | | } |
| | | val fileName = t.getReportName() |
| | | val fName = URLEncoder.encode(fileName, "UTF-8") |
| | | response.apply { |
| | | setHeader("Content-Disposition", "attachment;filename=$fileName") |
| | | setHeader("fileName", fileName) |
| | | 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 heads = getTableTitles(config.sceneType, config.districtCode) |
| | | // val contents = getTableContents(config, heads.size) |
| | | val r = getTable(1, config) |
| | | val out = response.outputStream |
| | | ExcelUtil.write2(out, r.first, r.second) |
| | | val p = Constant.DEFAULT_FILE_PATH + "/files/autoscore/" |
| | | val file = File(p + fileName) |
| | | if (config.forceUpdate || !file.exists()) { |
| | | t.toFile(p) |
| | | } |
| | | response.outputStream.write(file.readBytes()) |
| | | |
| | | return response |
| | | return true |
| | | } |
| | | |
| | | override fun getSubTaskDetail(config: ExcelConfigVo): SubTaskTableVo { |
| | |
| | | //原有的第一行表头增加1行行跨度,同时新的第二行表头添加空位 |
| | | head[0].forEach { |
| | | (it as ExcelUtil.MyCell).rowSpan++ |
| | | h2.add(0, "") |
| | | // h2.add(0, "") |
| | | } |
| | | //合并表头 |
| | | head[0].addAll(h1) |