zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
@@ -39,4 +39,6 @@ List<String> selectSameDetl(@Param("matnr") String matnr, @Param("batch") String batch, @Param("hostId") Long hostId); List<LocDetl> getStockStatisExcel(); } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
@@ -35,4 +35,6 @@ */ List<String> getSameDetl(String matnr, String batch, Long hostId); List<LocDetl> getStockStatisExcel(); } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
@@ -10,10 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.*; @Service("locDetlService") public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService { @@ -73,4 +70,9 @@ public List<String> getSameDetl(String matnr, String batch, Long hostId) { return this.baseMapper.selectSameDetl(matnr, batch, hostId); } @Override public List<LocDetl> getStockStatisExcel() { return this.baseMapper.getStockStatisExcel(); } } zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
@@ -142,4 +142,14 @@ ORDER BY lm.modi_time ASC </select> <select id="getStockStatisExcel" resultType="com.zy.asrs.common.wms.entity.LocDetl"> select ROW_NUMBER() over (order by sum(a.anfme) desc) as row , a.matnr , sum(a.anfme) as anfme from wms_loc_detl a where 1=1 group by a.matnr </select> </mapper> zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -1,5 +1,7 @@ package com.zy.asrs.wms.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -18,6 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.*; @RestController @@ -187,4 +192,23 @@ return R.ok(locDetlService.getStockOut(curr, limit, param)); } @RequestMapping(value = "/locDetl/statis/export") public void statisExport(HttpServletResponse response) throws IOException { List<LocDetl> excel = locDetlService.getStockStatisExcel(); for (LocDetl locDetl : excel) { Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, locDetl.getMatnr())); if (mat != null) { locDetl.sync(mat); } } response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("库存明细统计报表", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), LocDetl.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .sheet("表1") .doWrite(excel); } }