opt:导出功能优化

This commit is contained in:
2025-11-21 12:58:04 +08:00
parent 668736639b
commit 85d349eda2
17 changed files with 340 additions and 16 deletions

View File

@@ -5,22 +5,29 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.common.utils.MapOf;
import org.nl.wms.pm_manage.service.IPmFormDataService;
import org.nl.wms.pm_manage.service.dao.PmFormData;
import org.nl.wms.pm_manage.service.dto.PmFormDataParam;
import org.nl.wms.pm_manage.service.dto.FormDataQuery;
import org.nl.wms.pm_manage.service.dto.PmFormDataDto;
import org.nl.wms.pm_manage.service.dto.PmFormDataParam;
import org.nl.wms.system_manage.service.columnInfo.ColumnInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
@@ -33,11 +40,15 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("/api/pmFormData")
@SaIgnore
@Slf4j
public class PmFormDataController {
@Autowired
private IPmFormDataService iPmFormDataService;
@Autowired
private ColumnInfoService columnInfoService;
@GetMapping()
@@ -136,7 +147,33 @@ public class PmFormDataController {
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/exportFile")
public void exportFile(@RequestBody FormDataQuery query, HttpServletResponse response) {
PageQuery page = new PageQuery();
page.setPage(0);
page.setSize(99999);
IPage<PmFormDataDto> pmFormDataDtoIPage = iPmFormDataService.queryTree(query, page);
List<PmFormDataDto> pmFormDataDtos = pmFormDataDtoIPage.getRecords();
List<Map> maps = pmFormDataDtos.stream().map(pmFormDataDto -> {
try {
return BeanUtils.describe(pmFormDataDto);
} catch (Exception e) {
e.printStackTrace();
return new HashMap();
}
}).collect(Collectors.toList());
try {
columnInfoService.exportFile("pm_form_data", maps, response,
null, MapOf.of(
"material_code","物料编号","material_name","物料名称","net_weight","物料净重"
)
);
} catch (IOException e) {
log.info("EXCEL 导出异常,异常原因=【{}】",e.getMessage());
e.printStackTrace();
}
}
}

View File

@@ -1,17 +1,27 @@
package org.nl.wms.warehouse_manage.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.common.utils.MapOf;
import org.nl.wms.system_manage.service.columnInfo.ColumnInfoService;
import org.nl.wms.warehouse_manage.service.IOutBillService;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author dsh
@@ -25,6 +35,9 @@ public class OutBillController {
@Resource
private IOutBillService iOutBillService;
@Resource
private ColumnInfoService columnInfoService;
@GetMapping
@Log("查询出库单")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
@@ -143,5 +156,32 @@ public class OutBillController {
public ResponseEntity<Object> getOutBillTask(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(iOutBillService.getOutBillTask(whereJson), HttpStatus.OK);
}
@PostMapping("/exportFile")
public void exportFile(@RequestBody Map whereJson, PageQuery page,String[] stor_id, String[] bill_status, String[] bill_type, HttpServletResponse response) {
page.setPage(0);
page.setSize(99999);
IPage<IOStorInvDto> ioStorInvIPage = iOutBillService.pageQuery(whereJson, page, stor_id, bill_status, bill_type);
List<IOStorInvDto> ioStorInvs = ioStorInvIPage.getRecords();
List<Map> maps = ioStorInvs.stream().map(ioStorInv -> {
try {
// BeanUtils.describe() 会把 JavaBean 转成 Mapkey 是属性名value 是属性值)
return BeanUtils.describe(ioStorInv);
} catch (Exception e) {
e.printStackTrace();
return new HashMap();
}
}).collect(Collectors.toList());
try {
columnInfoService.exportFile("st_ivt_iostorinv", maps, response,
null,
MapOf.of(
"material_code","物料编号","material_name","物料名称"
));
} catch (IOException e) {
log.info("EXCEL 导出异常,异常原因=【{}】",e.getMessage());
e.printStackTrace();
}
}
}

View File

@@ -1,18 +1,28 @@
package org.nl.wms.warehouse_manage.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.common.utils.MapOf;
import org.nl.wms.system_manage.service.columnInfo.ColumnInfoService;
import org.nl.wms.warehouse_manage.service.IRawAssistIStorService;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author dsh
@@ -27,6 +37,9 @@ public class RawAssistIStorController {
@Resource
private IRawAssistIStorService iRawAssistIStorService;
@Resource
private ColumnInfoService columnInfoService;
@GetMapping
@Log("查询入库单据")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
@@ -112,4 +125,34 @@ public class RawAssistIStorController {
public ResponseEntity<Object> getInBillTaskDtl(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(iRawAssistIStorService.getInBillTaskDtl(whereJson), HttpStatus.OK);
}
@PostMapping("/exportFile")
public void exportFile(@RequestBody Map whereJson, HttpServletResponse response) {
PageQuery page = new PageQuery();
page.setPage(0);
page.setSize(99999);
IPage<IOStorInvDto> ioStorInvIPage = iRawAssistIStorService.pageQuery(whereJson, page);
List<IOStorInvDto> ioStorInvs = ioStorInvIPage.getRecords();
List<Map> maps = ioStorInvs.stream().map(ioStorInv -> {
try {
// BeanUtils.describe() 会把 JavaBean 转成 Mapkey 是属性名value 是属性值)
return BeanUtils.describe(ioStorInv);
} catch (Exception e) {
e.printStackTrace();
return new HashMap();
}
}).collect(Collectors.toList());
try {
columnInfoService.exportFile("st_ivt_iostorinv", maps, response,
null,
MapOf.of(
"material_code","物料编号","material_name","物料名称"
));
} catch (IOException e) {
log.info("EXCEL 导出异常,异常原因=【{}】",e.getMessage());
e.printStackTrace();
}
}
}

View File

@@ -4,11 +4,11 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.warehouse_manage.service.dao.IOStorInv;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDisDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDtlDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import java.util.List;
import java.util.Map;
@@ -26,7 +26,7 @@ public interface IOutBillService extends IService<IOStorInv> {
* @param page 分页参数
* @return Map<String, Object>
*/
IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type);
IPage<IOStorInvDto> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type);
/**
* 获取可用库存物料

View File

@@ -10,6 +10,7 @@ import org.nl.wms.warehouse_manage.service.dao.IOStorInv;
import org.nl.wms.warehouse_manage.service.dto.GroupPlateDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDisDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDtlDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import java.util.List;
import java.util.Map;
@@ -26,7 +27,7 @@ public interface IRawAssistIStorService extends IService<IOStorInv> {
* @param page 分页参数
* @return Map<String, Object>
*/
IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page);
IPage<IOStorInvDto> pageQuery(Map whereJson, PageQuery page);
IPage<GroupPlateDto> getBillDtl(Map whereJson, PageQuery page);

View File

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
import org.nl.wms.warehouse_manage.service.dao.IOStorInv;
import org.nl.wms.warehouse_manage.service.dto.GroupPlateDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDtlDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import java.util.List;
import java.util.Map;
@@ -18,7 +19,7 @@ import java.util.Map;
@Mapper
public interface IOStorInvMapper extends BaseMapper<IOStorInv> {
IPage<IOStorInv> queryAllByPage (IPage<IOStorInv> page,@Param("params") Map whereJson);
IPage<IOStorInvDto> queryAllByPage (IPage<IOStorInv> page, @Param("params") Map whereJson);
IPage<GroupPlateDto> getGroupPlate (IPage<GroupPlateDto> page, @Param("params") Map whereJson);
@@ -26,6 +27,6 @@ public interface IOStorInvMapper extends BaseMapper<IOStorInv> {
List<IOStorInvDtlDto> getIODtl (@Param("params") Map whereJson);
IPage<IOStorInv> queryOutBillPage (IPage<IOStorInv> page,@Param("params") Map whereJson);
IPage<IOStorInvDto> queryOutBillPage (IPage<IOStorInv> page,@Param("params") Map whereJson);
}

View File

@@ -55,6 +55,7 @@ import org.nl.wms.warehouse_manage.service.dao.mapper.IOStorInvDtlMapper;
import org.nl.wms.warehouse_manage.service.dao.mapper.IOStorInvMapper;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDisDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDtlDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -111,7 +112,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
@Override
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
public IPage<IOStorInvDto> pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) {
HashMap<String, String> map = new HashMap<>(whereJson);
if (StrUtil.isNotEmpty(map.get("bill_code"))) {

View File

@@ -49,6 +49,7 @@ import org.nl.wms.warehouse_manage.service.dao.mapper.IOStorInvMapper;
import org.nl.wms.warehouse_manage.service.dto.GroupPlateDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDisDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDtlDto;
import org.nl.wms.warehouse_manage.service.dto.IOStorInvDto;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
@@ -96,7 +97,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
private IPmFormDataService iPmFormDataService;
@Override
public IPage<IOStorInv> pageQuery(Map whereJson, PageQuery page) {
public IPage<IOStorInvDto> pageQuery(Map whereJson, PageQuery page) {
HashMap<String, String> map = new HashMap<>();
map.put("stor_id", (String) whereJson.get("stor_id"));
map.put("bill_type", (String) whereJson.get("bill_type"));