From d015d534f1b782fcd464beddb375b6eca7386b10 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Thu, 21 Aug 2025 18:53:35 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OcrModulePlaceServiceImpl.java | 26 ++++++++---------- .../service/impl/OcrZonePlaceServiceImpl.java | 2 +- ...DailyAttendanceStatisticsV2Controller.java | 7 ++--- .../java/com/zhgd/xmgl/util/ExcelUtils.java | 11 +++++--- .../考勤月报-按项目.xlsx | Bin 13274 -> 13280 bytes 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrModulePlaceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrModulePlaceServiceImpl.java index 9efd7ce31..3cb9d50b7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrModulePlaceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrModulePlaceServiceImpl.java @@ -1,26 +1,24 @@ package com.zhgd.xmgl.modules.ocr.service.impl; -import com.zhgd.jeecg.common.execption.OpenAlertException; -import com.zhgd.xmgl.modules.ocr.entity.OcrModulePlace; -import com.zhgd.xmgl.modules.ocr.entity.vo.OcrModulePlaceVo; -import com.zhgd.xmgl.modules.ocr.entity.dto.OcrModulePlaceDto; -import com.zhgd.xmgl.modules.ocr.mapper.OcrModulePlaceMapper; -import com.zhgd.xmgl.modules.ocr.service.IOcrModulePlaceService; -import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.util.PageUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.ocr.entity.OcrModulePlace; +import com.zhgd.xmgl.modules.ocr.entity.dto.OcrModulePlaceDto; +import com.zhgd.xmgl.modules.ocr.entity.vo.OcrModulePlaceVo; +import com.zhgd.xmgl.modules.ocr.mapper.OcrModulePlaceMapper; +import com.zhgd.xmgl.modules.ocr.service.IOcrModulePlaceService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; -import com.zhgd.xmgl.util.RefUtil; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.beans.factory.annotation.Autowired; - /** * @Description: ocr识别模块位置 * @author: pds @@ -49,7 +47,7 @@ public class OcrModulePlaceServiceImpl extends ServiceImpl getQueryWrapper(HashMap param) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(OcrModulePlaceVo.class, param, true); - queryWrapper.orderByDesc(RefUtil.fieldNameUlc(OcrModulePlaceVo::getId)); + queryWrapper.orderByAsc(RefUtil.fieldNameUlc(OcrModulePlaceVo::getCreateTime)); return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrZonePlaceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrZonePlaceServiceImpl.java index e69625d3e..005d7d6db 100644 --- a/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrZonePlaceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/ocr/service/impl/OcrZonePlaceServiceImpl.java @@ -63,7 +63,7 @@ public class OcrZonePlaceServiceImpl extends ServiceImpl getQueryWrapper(HashMap param) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(OcrZonePlaceVo.class, param, true); - queryWrapper.orderByDesc(RefUtil.fieldNameUlc(OcrZonePlaceVo::getId)); + queryWrapper.orderByAsc(RefUtil.fieldNameUlc(OcrZonePlaceVo::getCreateTime)); return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerDailyAttendanceStatisticsV2Controller.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerDailyAttendanceStatisticsV2Controller.java index 6498258dc..506b7be70 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerDailyAttendanceStatisticsV2Controller.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerDailyAttendanceStatisticsV2Controller.java @@ -1037,8 +1037,7 @@ public class WorkerDailyAttendanceStatisticsV2Controller { root.put(1, sheetMap2); sheetNames.add(enterpriseName + "考勤报表"); templateUrl = Fileutils.getExportTemplateFile("excel/workerDailyAttendanceStatisticsV2/" + tempSheetName).getAbsolutePath(); - String outputTemplateFilePath = PathUtil.getBasePath() + "/temp/" + IdUtil.randomUUID() + ".xlsx"; - TemplateExportParams params = new TemplateExportParams(outputTemplateFilePath, true); + TemplateExportParams params = new TemplateExportParams(templateUrl, true); params.setSheetName(sheetNames.toArray(new String[]{})); Workbook workbook = ExcelExportUtil.exportExcel(root, params); ExcelUtils.downLoadExcel(tempSheetName, response, workbook); @@ -1155,10 +1154,10 @@ public class WorkerDailyAttendanceStatisticsV2Controller { root.put(0, sheetMap); sheetNames.add(project.getProjectName()); templateUrl = Fileutils.getExportTemplateFile("excel/workerDailyAttendanceStatisticsV2/" + tempSheetName).getAbsolutePath(); - String outputTemplateFilePath = PathUtil.getBasePath() + "/temp/" + IdUtil.randomUUID() + ".xlsx"; - TemplateExportParams params = new TemplateExportParams(outputTemplateFilePath, true); + TemplateExportParams params = new TemplateExportParams(templateUrl, true); params.setSheetName(sheetNames.toArray(new String[]{})); Workbook workbook = ExcelExportUtil.exportExcel(root, params); + ExcelUtils.downLoadExcel(tempSheetName, response, workbook); } } catch (IOException e) { diff --git a/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java b/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java index a91aae557..285120760 100644 --- a/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java +++ b/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java @@ -15,7 +15,10 @@ import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.IOUtils; -import org.apache.poi.xssf.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.core.io.ClassPathResource; import javax.servlet.http.HttpServletResponse; @@ -131,7 +134,7 @@ public class ExcelUtils { * @param column 列下标 * @return */ - public static boolean isMergedRegion(Sheet sheet, int row, int column) { + private static boolean isMergedRegion(Sheet sheet, int row, int column) { int sheetMergeCount = sheet.getNumMergedRegions(); for (int i = 0; i < sheetMergeCount; i++) { CellRangeAddress range = sheet.getMergedRegion(i); @@ -288,7 +291,7 @@ public class ExcelUtils { for (int i = 0; i < enterpriseInfoList.size(); i++) { XSSFRow row1 = sheet3.createRow(i); XSSFCell cell1 = row1.createCell(0); - cell1.setCellType(CellType.STRING); + cell1.setCellType(CellType.STRING); cell1.setCellValue(enterpriseInfoList.get(i).getEnterpriseName()); } } @@ -307,7 +310,7 @@ public class ExcelUtils { map.put("sex", MapUtils.getIntValue(map, "sex") == 1 ? "男" : "女"); Map placeholderMap = new HashMap<>(16); for (String s : map.keySet()) { - placeholderMap.put("${" + s +"}", map.get(s)); + placeholderMap.put("${" + s + "}", map.get(s)); } placeholderMap.put("${studyTime}", workerSafeEducationWorker.getStudyTime()); placeholderMap.put("${score}", workerSafeEducationWorker.getScore()); diff --git a/src/main/resources/excel/workerDailyAttendanceStatisticsV2/考勤月报-按项目.xlsx b/src/main/resources/excel/workerDailyAttendanceStatisticsV2/考勤月报-按项目.xlsx index 4c07e80b351b4b7c16f7318c03918b231c6a8b9e..2b9262dfb54747c5dc2786f3ff5e10d4193e7651 100644 GIT binary patch delta 4370 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 pK)wJ{Ly%PZ;^hj??k=~^f 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 BQ~3Y@