自动化立体仓库 - WMS系统
pang.jiabao
2024-11-06 3d04b112c510fd14617ab79dad1ecd51143eca2a
订单明细打印物料二维码
1个文件已添加
5个文件已修改
158 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderDetlController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/PrintDataDto.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -9,13 +9,14 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.service.OrderDetlService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -26,6 +27,9 @@
    @Autowired
    private OrderDetlService orderDetlService;
    @Resource
    private OrderDetlMapper orderDetlMapper;
    @PostMapping("/orderDetl/list/pda/auth")
    public R getPdaOrderDetl(@RequestBody Map<String,Object> map) {
@@ -142,4 +146,13 @@
        return R.ok();
    }
    @RequestMapping(value = "/orderDetl/getPrintDetl/{id}")
    @ManagerAuth
    public R getPrintDetl(@PathVariable("id") Integer id) {
        if (Cools.isEmpty(id)) {
            return R.parse("id为空");
        }
        return R.ok(orderDetlMapper.selectPrintData(id));
    }
}
src/main/java/com/zy/asrs/entity/param/PrintDataDto.java
New file
@@ -0,0 +1,48 @@
package com.zy.asrs.entity.param;
import lombok.Data;
/**
 * @author pang.jiabao
 * @description 打印订单明细二维码信息
 * @createDate 2024/11/5 16:51
 */
@Data
public class PrintDataDto {
    /**
     * 物料编码
     */
    private String matnr;
    /**
     * 物料名称
     */
    private String maktx;
    /**
     * 批次
     */
    private String batch;
    /**
     * 规格
     */
    private String specs;
    /**
     * 单位
     */
    private String unit;
    /**
     * 数量
     */
    private Double anfme;
    /**
     * 客户名称
     */
    private String cstmrName;
}
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.PrintDataDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -34,4 +35,10 @@
    int increaseQtyByOrderNo(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
    int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty);
    /**
     * 查询打印订单明细二维码数据
     * @param id 订单明细id
     */
    PrintDataDto selectPrintData(Integer id);
}
src/main/resources/mapper/OrderDetlMapper.xml
@@ -124,6 +124,22 @@
        and mdt.pakout = 1
        <include refid="pakOutPageCondition"></include>
    </select>
    <select id="selectPrintData" resultType="com.zy.asrs.entity.param.PrintDataDto">
        select
            top 1 md.matnr ,
                md.maktx ,
            md.batch ,
            md.specs ,
            md.unit ,
            md.anfme ,
            mo.cstmr_name as cstmrName
        from
            man_order_detl md
                inner join man_order mo on
                md.order_id = mo.id
        where
            md.id = #{id}
    </select>
    <update id="increase">
        update man_order_detl
src/main/webapp/static/js/order/order.js
@@ -130,7 +130,8 @@
                            {field: 'batch', title: '批号'},
                            {field: 'anfme', title: '数量'},
                            {field: 'workQty', title: '作业数量'},
                            {field: 'qty', title: '完成数量', style: 'font-weight: bold'}
                            {field: 'qty', title: '完成数量', style: 'font-weight: bold'},
                            {align: 'center', title: '打印', toolbar: '#printOperate', width: 80}
                            // {field: 'unit', title: '单位'},
                            // {
                            //     field: 'createTime$', title: '创建时间', sort: true, templet: function (d) {
@@ -166,6 +167,42 @@
        }
    });
    // 监听行工具事件
    table.on('tool(lookSSXMTable)', function(obj) {
        $.ajax({
            url: baseUrl+"/orderDetl/getPrintDetl/" + obj.data.id,
            headers: {'token': localStorage.getItem('token'),'Content-Type' :'application/json'},
            method: 'GET',
            async: false,
            success: function (res) {
                if (res.code === 200){
                    layer.closeAll();
                    let data = res.data
                        var templateDom = $("#templatePreview1");
                        var className = templateDom.attr("class");
                        var param = "编码:"+data.matnr+";名称:"+data.maktx+";批次:"+data.batch+";规格:"+data.specs
                            +";单位:"+data.unit+";数量:"+data.anfme+";客户名称:"+data.cstmrName;
                        var encodeUrl = encodeURIComponent(param);
                        data["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="+encodeUrl;
                        console.log(data["barcodeUrl"]);
                    let list = Array.isArray(res.data) ? res.data : [res.data];
                    res.data = list;
                    var tpl = templateDom.html();
                    var template = Handlebars.compile(tpl);
                    var html = template(res);
                    var box = $("#box");
                    box.html(html);box.show();
                    box.print({mediaPrint:true});
                    box.hide();
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg)
                }
            }
        })
    });
    // 显示表单弹窗
    function showEditModel(expTpe) {
        admin.open({
src/main/webapp/views/order/order.html
@@ -94,6 +94,7 @@
        </div>
    </div>
</div>
<div id="box" style="display: block"></div>
<!-- 表格操作列 -->
<script type="text/html" id="operate">
    {{# if (d.settle == 0 || d.settle == 1) { }}
@@ -111,6 +112,9 @@
            <i class="layui-icon" style="font-size: 12px;">&#xe61a;</i> 查看单据明细
        </a>
    </span>
</script>
<script type="text/html" id="printOperate">
    <button class="layui-btn layui-btn-xs btn-print" lay-event="btnPrint">打印</button>
</script>
<script type="text/html" id="orderNoTpl">
    {{d.orderNo}}
@@ -183,6 +187,34 @@
<script type="text/html" id="formSSXMTableBar">
    <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>-->
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script type="text/template" id="templatePreview1" class="template-qrcode">
    {{#each data}}
    <div style="width: 150px;">
        <div>
            <img class="template-qrcode" src="{{this.barcodeUrl}}">
            <div style="text-align: center;">{{matnr}}</div>
        </div>
        <div style="font-size: 12px;">
            名称:{{maktx}}
        </div>
        <div style="font-size: 12px;">
            批次:{{batch}}
        </div>
        <div style="font-size: 12px;">
            规格:{{specs}}
        </div>
        <div style="font-size: 12px;">
            单位:{{unit}}
        </div>
        <div style="font-size: 12px;">
            数量:{{anfme}}
        </div>
        <div style="font-size: 12px;">
            客户名称:{{cstmrName}}
        </div>
    </div>
    {{/each}}
</script>
<!-- 表单弹窗 -->
<script type="text/html" id="matEditDialog">
@@ -302,6 +334,7 @@
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/js/jquery/jQuery.print.js"></script>
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script>