自动化立体仓库 - WMS系统
pang.jiabao
2025-02-17 8be136c5e451b623cec21e806bd30e6e2698587d
新增捡货单excel导出,销售用
1个文件已添加
3个文件已修改
111 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/PakoutController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/result/PakoutExcelVo.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/picking/picking.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/picking/picking.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/PakoutController.java
@@ -13,6 +13,7 @@
import com.core.common.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.entity.result.PakoutExcelVo;
import com.zy.asrs.entity.result.PakoutVo;
import com.zy.asrs.service.*;
import com.zy.common.web.BaseController;
@@ -25,6 +26,7 @@
import java.io.IOException;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
@RestController
public class PakoutController extends BaseController {
@@ -382,4 +384,47 @@
                .doWrite(pakoutVos);
    }
    @RequestMapping(value = "/pakOut/exportExcel2/auth")
    public void exportExcel2(HttpServletResponse response, @RequestParam String orderNo) throws IOException {
        //从数据库查询数据
        List<Pakout> list = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num",orderNo).orderBy("maktx"));
        List<PakoutExcelVo> pakOutExcelVos=new ArrayList<>();
        for (Pakout pakOut: list) {
            Pla pla = plaService.selectOne(new EntityWrapper<Pla>()
                    .eq("batch", pakOut.getBatch())
                    .eq("package_no", pakOut.getBarcode())
                    .eq("brand", pakOut.getMaktx()));
            PakoutExcelVo pakOutVo = new PakoutExcelVo();
            BeanUtils.copyProperties(pla,pakOutVo);
            BeanUtils.copyProperties(pakOut,pakOutVo);
            pakOutExcelVos.add(pakOutVo);
        }
        Map<String, List<PakoutExcelVo>> collect = pakOutExcelVos.stream().collect(Collectors.groupingBy(PakoutExcelVo::getBrand));
        List<PakoutExcelVo> newPakOutExcelVos=new ArrayList<>();
        for(Map.Entry<String, List<PakoutExcelVo>> entry: collect.entrySet()) {
            double sum = entry.getValue().stream().mapToDouble(PakoutExcelVo::getAnfme).sum();
            newPakOutExcelVos.addAll(entry.getValue());
            PakoutExcelVo pakoutExcelVo = new PakoutExcelVo();
            pakoutExcelVo.setProDate("小计:");
            pakoutExcelVo.setAnfme(sum);
            newPakOutExcelVos.add(pakoutExcelVo);
        }
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode("拣货单", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName+ orderNo + ".xlsx");
        EasyExcel.write(response.getOutputStream(), PakoutExcelVo.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                .sheet("表1")
                .doWrite(newPakOutExcelVos);
    }
}
src/main/java/com/zy/asrs/entity/result/PakoutExcelVo.java
New file
@@ -0,0 +1,53 @@
package com.zy.asrs.entity.result;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
 * @author pang.jiabao
 * @description 拣货单,销售发货用excel导出模板
 * @createDate 2025/2/17 15:47
 */
@Data
public class PakoutExcelVo {
    @ExcelProperty(value = "牌号")
    private String brand;
    @ExcelProperty(value = "批号")
    private String batch;
    @ExcelProperty(value = "包装号")
    private Integer packageNo;
    @ExcelProperty(value = "生产日期")
    private String proDate;
    @ExcelProperty(value = "重量KG")
    private Double anfme;
    @ExcelProperty(value = "熔指,g/10min")
    private Double fingerMelting;
    @ExcelProperty(value = "熔点,℃")
    private Double fusingPoint;
    @ExcelProperty(value = "黄度")
    private Double yellowness;
    @ExcelProperty(value = "不透明度,%")
    private Double opacity;
    @ExcelProperty(value = "包装类型")
    private String packageType;
    @ExcelProperty(value = "托盘类型")
    private String zpalletType;
    @ExcelProperty(value = "质量状态")
    private String massState;
    @ExcelProperty(value = "库位")
    private String locNo;
}
src/main/webapp/static/js/picking/picking.js
@@ -109,6 +109,9 @@
            case "printExcel":
                printExcel(data);
                break;
            case "exportExcel2":
                exportExcel2(data);
                break;
            case "look":
                var $a = $(obj.tr).find('a[lay-event="look"]');
                var offset = $a.offset();
@@ -405,6 +408,15 @@
        });
    }
    function exportExcel2(data){
        layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){
            layer.closeAll();
            layer.load(1, {shade: [0.1,'#fff']});
            location.href = baseUrl+"/pakOut/exportExcel2/auth?orderNo="+data.doc_num;
            layer.closeAll('loading');
        });
    }
});
// 关闭动作
src/main/webapp/views/picking/picking.html
@@ -77,6 +77,7 @@
<!-- 表格操作列 -->
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="printExcel">导出Excel</a>
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="exportExcel2">发货Excel</a>
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint2">打印</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>
 <!--   <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="btnPrint"><img src="../../static/image/nav/fn_3.png" alt="二维码"></a>