From ec2fe3f82a4aab37ed064cfa83d9789a24e9a5fa Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Tue, 28 Apr 2026 11:54:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A9=E6=95=88=E5=A1=AB=E6=8A=A5=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BsEfficiencyTaskController.java | 97 +++++++++---------- .../efficiency/listener/ExcelMapListener.java | 5 + .../desk/efficiency/util/EasyExcelUtil.java | 8 +- 3 files changed, 59 insertions(+), 51 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java index 82dd4f8b..7d3a9c03 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java @@ -128,11 +128,13 @@ public class BsEfficiencyTaskController extends BladeController { if (task.getStatus() == null || task.getStatus() != BsEfficiencyTaskEnum.STATUS_PENDING_APPROVAL.getCode()) { R.fail("当前绩效任务不能审批"); } - BsEfficiencyTaskEntity upd = new BsEfficiencyTaskEntity(); - upd.setId(bsEfficiencyTask.getId()); - upd.setStatus(BsEfficiencyTaskEnum.STATUS_REJECTED.getCode()); - upd.setRemark(bsEfficiencyTask.getRemark()); - return R.status(bsEfficiencyTaskService.saveOrUpdate(upd)); + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(BsEfficiencyTaskEntity::getId, bsEfficiencyTask.getId()) + .set(BsEfficiencyTaskEntity::getAttachId, null) + .set(BsEfficiencyTaskEntity::getReportTime, null) + .set(BsEfficiencyTaskEntity::getRemark, bsEfficiencyTask.getRemark()) + .set(BsEfficiencyTaskEntity::getStatus, BsEfficiencyTaskEnum.STATUS_REJECTED.getCode()); + return R.status(bsEfficiencyTaskService.update(null, wrapper)); } /** @@ -161,6 +163,7 @@ public class BsEfficiencyTaskController extends BladeController { upd.setId(bsEfficiencyTask.getId()); upd.setAttachId(bsEfficiencyTask.getAttachId()); upd.setStatus(BsEfficiencyTaskEnum.STATUS_FINISHED.getCode()); + upd.setReportTime(new Date()); return R.status(bsEfficiencyTaskService.saveOrUpdate(upd)); } @@ -187,6 +190,7 @@ public class BsEfficiencyTaskController extends BladeController { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(BsEfficiencyTaskEntity::getId, bsEfficiencyTask.getId()) .set(BsEfficiencyTaskEntity::getAttachId, null) + .set(BsEfficiencyTaskEntity::getReportTime, null) .set(BsEfficiencyTaskEntity::getStatus, BsEfficiencyTaskEnum.STATUS_IN_PROGRESS.getCode()); return R.status(bsEfficiencyTaskService.update(null, wrapper)); } @@ -247,53 +251,47 @@ public class BsEfficiencyTaskController extends BladeController { return checkR; } Map resultMap = new HashMap<>(); - List> mapList = EasyExcelUtil.read(file); - List> tableDataList = new ArrayList<>(); + Map readResult = EasyExcelUtil.read(file); + List> mapList = (List>) readResult.get("data"); + Map excelHeadMap = (Map) readResult.get("head"); + List excelParamNames = excelHeadMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .map(Map.Entry::getValue) + .toList(); + if (excelParamNames.size() != paramNames.size()) { + return R.fail("上传文件与模板不一致!"); + } + Set paramSet = new HashSet<>(paramNames); + Set excelParamSet = new HashSet<>(excelParamNames); + if (!paramSet.equals(excelParamSet)) { + return R.fail("上传文件与模板不一致!"); + } + int num = 1; + LinkedHashMap headMap = new LinkedHashMap<>(); + for (String key : excelParamNames) { + if (this.EMPLOYEE_CODE.equals(key)) { + headMap.put(this.EMPLOYEE_CODE, "employeeCode"); + } else if (this.EMPLOYEE_NAME.equals(key)) { + headMap.put(this.EMPLOYEE_NAME, "employeeName"); + } else if (this.TOTAL_SCORE.equals(key)) { + headMap.put(this.TOTAL_SCORE, "totalScore"); + } else { + headMap.put(key, "temp" + num); + num++; + } + } List> tableColumnList = new ArrayList<>(); + for (Map.Entry entry : headMap.entrySet()) { + LinkedHashMap tableColumn = new LinkedHashMap<>(); + tableColumn.put("label", entry.getKey()); + tableColumn.put("prop", entry.getValue()); + tableColumnList.add(tableColumn); + } + List> tableDataList = new ArrayList<>(); if (!CollectionUtils.isEmpty(mapList)) { - LinkedHashMap firstMap = mapList.get(0); - int num = 1; - LinkedHashMap headMap = new LinkedHashMap<>(); - for (String key : firstMap.keySet()) { - if (this.EMPLOYEE_CODE.equals(key)) { - headMap.put(this.EMPLOYEE_CODE, "employeeCode"); - } else if (this.EMPLOYEE_NAME.equals(key)) { - headMap.put(this.EMPLOYEE_NAME, "employeeName"); - } else if (this.TOTAL_SCORE.equals(key)) { - headMap.put(this.TOTAL_SCORE, "totalScore"); - } else { - headMap.put(key, "temp" + num); - num++; - } - } - List missingFields = new ArrayList<>(); - for (String requiredField : paramNames) { - if (!headMap.containsKey(requiredField)) { - missingFields.add(requiredField); - } - } - // 如果有缺失字段 - if (!CollectionUtils.isEmpty(missingFields)) { - return R.fail("上传文件与模板不一致!"); - } - for (Map.Entry entry : headMap.entrySet()) { - String excelHeadName = entry.getKey(); - if (!paramNames.contains(excelHeadName)) { - continue; - } - LinkedHashMap tableColumn = new LinkedHashMap<>(); - tableColumn.put("label", entry.getKey()); - tableColumn.put("prop", entry.getValue()); - tableColumnList.add(tableColumn); - } - for (LinkedHashMap map : mapList) { LinkedHashMap tableData = new LinkedHashMap<>(); for (Map.Entry entry : headMap.entrySet()) { - String excelHeadName = entry.getKey(); - if (!paramNames.contains(excelHeadName)) { - continue; - } tableData.put(entry.getValue(), map.get(entry.getKey())); } R userInfoResult = userClient.userInfoByCode((String) tableData.get("employeeCode")); @@ -304,9 +302,9 @@ public class BsEfficiencyTaskController extends BladeController { } tableDataList.add(tableData); } - resultMap.put("tableColumn", tableColumnList); - resultMap.put("tableData", tableDataList); } + resultMap.put("tableColumn", tableColumnList); + resultMap.put("tableData", tableDataList); return R.data(resultMap); } @@ -398,6 +396,7 @@ public class BsEfficiencyTaskController extends BladeController { upd.setId(bsEfficiencyTask.getId()); upd.setAttachId(bsEfficiencyTask.getAttachId()); upd.setStatus(BsEfficiencyTaskEnum.STATUS_PENDING_APPROVAL.getCode()); + upd.setReportTime(new Date()); return R.status(bsEfficiencyTaskService.saveOrUpdate(upd)); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/listener/ExcelMapListener.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/listener/ExcelMapListener.java index 322cd49f..6121520e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/listener/ExcelMapListener.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/listener/ExcelMapListener.java @@ -41,4 +41,9 @@ public class ExcelMapListener extends AnalysisEventListener public List> getData() { return resultList; } + + // 获取表头 + public Map getHeadMap() { + return headMap; + } } \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/EasyExcelUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/EasyExcelUtil.java index 268f8071..46aa5fad 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/EasyExcelUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/EasyExcelUtil.java @@ -4,13 +4,14 @@ import com.alibaba.excel.EasyExcel; import org.springblade.desk.efficiency.listener.ExcelMapListener; import org.springframework.web.multipart.MultipartFile; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class EasyExcelUtil { - public static List> read(MultipartFile file) { + public static Map read(MultipartFile file) { try { ExcelMapListener listener = new ExcelMapListener(); @@ -19,7 +20,10 @@ public class EasyExcelUtil { .sheet() .doRead(); - return listener.getData(); + Map result = new HashMap<>(); + result.put("data", listener.getData()); + result.put("head", listener.getHeadMap()); + return result; } catch (Exception e) { return null; }