From 34d36a15f339d331d668d4063cfdff50cffa5800 Mon Sep 17 00:00:00 2001
From: zhou zhou <zozhouo3o@gmail.com>
Date: 星期五, 17 四月 2026 15:11:32 +0800
Subject: [PATCH] #导出服务
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemDeadController.java | 116 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 87 insertions(+), 29 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemDeadController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemDeadController.java
index 7c67a79..fe5f4af 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemDeadController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemDeadController.java
@@ -10,6 +10,8 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.common.service.ListExportHandler;
+import com.vincent.rsf.server.common.service.ListExportService;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.utils.FieldsUtils;
import com.vincent.rsf.server.manager.controller.params.LocToTaskParams;
@@ -21,6 +23,8 @@
import com.vincent.rsf.server.manager.utils.buildPageRowsUtils;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.BeanWrapperImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -35,8 +39,39 @@
private LocItemService locItemService;
@Autowired
private LocService locService;
+ @Autowired
+ private ListExportService listExportService;
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ private final ListExportHandler<LocItem, BaseParam> locDeadReportExportHandler = new ListExportHandler<>() {
+ @Override
+ public List<LocItem> listByIds(List<Long> ids) {
+ return locItemService.listByIds(ids);
+ }
+
+ @Override
+ public List<LocItem> listByFilter(Map<String, Object> sanitizedMap, BaseParam baseParam) {
+ PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class);
+ return locItemService.list(pageParam.buildWrapper(true));
+ }
+
+ @Override
+ public void fillExportFields(List<LocItem> records) {
+ fillLocItemExtendFields(records);
+ buildPageRowsUtils.rowsMap(records);
+ }
+
+ @Override
+ public Map<String, Object> toExportRow(LocItem record, List<ExcelUtil.ExportColumn> columns) {
+ return buildLocDeadReportExportRow(record, columns);
+ }
+
+ @Override
+ public String defaultReportTitle() {
+ return "搴撳瓨鍋滄粸鎶ヨ〃";
+ }
+ };
+
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@PostMapping("/locDeadReport/page")
public R page(@RequestBody Map<String, Object> map) {
BaseParam baseParam = buildParam(map, BaseParam.class);
@@ -44,19 +79,12 @@
QueryWrapper<LocItem> wrapper = pageParam.buildWrapper(true);
/**鎷兼帴鎵╁睍瀛楁*/
PageParam<LocItem, BaseParam> page = locItemService.page(pageParam, wrapper);
- List<LocItem> records = page.getRecords();
- for (LocItem record : records) {
- if (!Objects.isNull(record.getFieldsIndex())) {
- Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
- record.setExtendFields(fields);
- }
- }
- page.setRecords(records);
+ fillLocItemExtendFields(page.getRecords());
return R.ok().add(buildPageRowsUtils.rowsMap(page));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@PostMapping("/locDeadReport/useO/page")
public R locUseOPage(@RequestBody Map<String, Object> map) {
BaseParam baseParam = buildParam(map, BaseParam.class);
@@ -72,14 +100,7 @@
locItemQueryWrapper.apply(applySql);
/**鎷兼帴鎵╁睍瀛楁*/
PageParam<LocItem, BaseParam> page = locItemService.page(pageParam, locItemQueryWrapper);
- List<LocItem> records = page.getRecords();
- for (LocItem record : records) {
- if (!Objects.isNull(record.getFieldsIndex())) {
- Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
- record.setExtendFields(fields);
- }
- }
- page.setRecords(records);
+ fillLocItemExtendFields(page.getRecords());
return R.ok().add(buildPageRowsUtils.rowsMap(page));
}
@@ -89,7 +110,7 @@
* @param param
* @return
*/
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@ApiOperation("鐢熸垚搴撳瓨鍑哄簱浠诲姟")
@PostMapping("/locDeadReport/generate/task")
public R generateTask(@RequestBody LocToTaskParams param) {
@@ -125,7 +146,7 @@
* @param map
* @return
*/
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@ApiOperation("鐢熸垚鐩樼偣鍑哄簱浠诲姟")
@PostMapping("/locDeadReport/check/task")
public R genStatisticalTask(@RequestBody LocToTaskParams map) {
@@ -144,25 +165,25 @@
}
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@PostMapping("/locDeadReport/list")
public R list(@RequestBody Map<String, Object> map) {
return R.ok().add(buildPageRowsUtils.rowsMap(locItemService.list()));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@PostMapping({"/locDeadReport/many/{ids}", "/locDeadReport/many/{ids}"})
public R many(@PathVariable Long[] ids) {
return R.ok().add(buildPageRowsUtils.rowsMap(locItemService.listByIds(Arrays.asList(ids))));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@GetMapping("/locDeadReport/{id}")
public R get(@PathVariable("id") Long id) {
return R.ok().add(buildPageRowsUtils.rowsMap(locItemService.getById(id)));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:save')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:save')")
@OperationLog("Create 搴撲綅鏄庣粏")
@PostMapping("/locDeadReport/save")
public R save(@RequestBody LocItem locItem) {
@@ -176,7 +197,7 @@
return R.ok("Save Success").add(buildPageRowsUtils.rowsMap(locItem));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:update')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:update')")
@OperationLog("Update 搴撲綅鏄庣粏")
@PostMapping("/locDeadReport/update")
public R update(@RequestBody LocItem locItem) {
@@ -188,7 +209,7 @@
return R.ok("Update Success").add(buildPageRowsUtils.rowsMap(locItem));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:remove')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:remove')")
@OperationLog("Delete 搴撲綅鏄庣粏")
@PostMapping("/locDeadReport/remove/{ids}")
public R remove(@PathVariable Long[] ids) {
@@ -198,7 +219,7 @@
return R.ok("Delete Success").add(buildPageRowsUtils.rowsMap(ids));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@PostMapping("/locDeadReport/query")
public R query(@RequestParam(required = false) String condition) {
List<KeyValVo> vos = new ArrayList<>();
@@ -212,10 +233,47 @@
return R.ok().add(buildPageRowsUtils.rowsMap(vos));
}
- @PreAuthorize("hasAuthority('manager:statisticReport:list')")
+ @PreAuthorize("hasAuthority('manager:stockStatistic:list')")
@PostMapping("/locDeadReport/export")
public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
- ExcelUtil.build(ExcelUtil.create(buildPageRowsUtils.rowsMap(locItemService.list()), LocItem.class), response);
+ listExportService.export(
+ map,
+ exportMap -> buildParam(exportMap, BaseParam.class),
+ locDeadReportExportHandler,
+ response
+ );
+ }
+
+ private void fillLocItemExtendFields(List<LocItem> records) {
+ for (LocItem record : records) {
+ if (!Objects.isNull(record.getFieldsIndex())) {
+ Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
+ record.setExtendFields(fields);
+ }
+ }
+ }
+
+ private Map<String, Object> buildLocDeadReportExportRow(LocItem record, List<ExcelUtil.ExportColumn> columns) {
+ BeanWrapper beanWrapper = new BeanWrapperImpl(record);
+ Map<String, Object> row = new LinkedHashMap<>();
+ row.put("deadTime", record.getDeadTime());
+ row.put("typeText", record.getType$());
+ row.put("wkTypeText", record.getWkType$());
+ row.put("statusText", record.getStatus$());
+ row.put("createByText", record.getCreateBy$());
+ row.put("createTimeText", record.getCreateTime$());
+ row.put("updateByText", record.getUpdateBy$());
+ row.put("updateTimeText", record.getUpdateTime$());
+
+ for (ExcelUtil.ExportColumn column : columns) {
+ if (row.containsKey(column.getSource())) {
+ continue;
+ }
+ if (beanWrapper.isReadableProperty(column.getSource())) {
+ row.put(column.getSource(), beanWrapper.getPropertyValue(column.getSource()));
+ }
+ }
+ return row;
}
}
--
Gitblit v1.9.1