自动化立体仓库 - WMS系统
pjb
2025-07-12 34f23d857e2e42fb3e243e4d5837741689da4e2e
对接MES出库订单下发
15个文件已修改
261 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlPakoutController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocDetlService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/LocDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderPakout/order.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderPakout/out.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/orderPakout/out.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -159,20 +159,20 @@
        if (!orderService.insert(order)) {
            throw new CoolException("保存订单主档失败");
        }
        List<DetlDto> list = new ArrayList<>();
//        List<DetlDto> list = new ArrayList<>();
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(),
                    orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
                        orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
                }
            } else {
                list.add(dto);
//            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(),
//                    orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
//                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
//            if (DetlDto.has(list, dto)) {
//                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
//                        orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
//                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
//                if (!orderDetlService.updateById(item)) {
//                    throw new CoolException("保存订单明细档失败");
//                }
//            } else {
//                list.add(dto);
                orderDetl.setOrderId(order.getId());
                orderDetl.setOrderNo(order.getOrderNo());
                orderDetl.setCreateBy(getUserId());
@@ -185,7 +185,7 @@
                if (!orderDetlService.insert(orderDetl)) {
                    throw new CoolException("保存订单明细档失败");
                }
            }
//            }
        }
        return R.ok("订单添加成功");
    }
src/main/java/com/zy/asrs/controller/OrderDetlPakoutController.java
@@ -67,7 +67,7 @@
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
                wrapper.eq(entry.getKey(), val);
            }
        }
    }
src/main/java/com/zy/asrs/controller/OutController.java
@@ -126,8 +126,8 @@
                if (issued <= 0.0D) {
                    continue;
                }
                List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist,orderDetl.getMatnr(), orderDetl.getBatch(),
                        orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
                List<LocDetl> locDetls = locDetlService.queryStockAllNew(null, exist,orderDetl.getMatnr(), orderDetl.getBatch()
                        ,orderDetl.getModel(),orderDetl.getVolume());
                for (LocDetl locDetl : locDetls) {
                    if (issued > 0) {
                        LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
@@ -138,6 +138,8 @@
                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
                        locDto.setStaNos(staNos);
                        locDto.setBrand(orderDetl.getBrand());
                        locDto.setModel(locDetl.getModel());
                        locDto.setVolume(locDetl.getVolume());
                        locDto.setStandby1(orderDetl.getStandby1());
                        locDto.setStandby2(orderDetl.getStandby2());
src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java
@@ -1,12 +1,8 @@
package com.zy.asrs.entity.param;
import com.alibaba.fastjson.JSON;
import com.core.common.DateUtils;
import com.zy.common.model.DetlDto;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -21,10 +17,9 @@
    private String orderTime;
    private String memo;
    private List<DetlDto> orderDetails;
    private String lgort;
//    public static void main(String[] args) {
//        OpenOrderPakoutParam param = new OpenOrderPakoutParam();
//        param.setOrderNo("LXT12321321");
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -74,6 +74,8 @@
    List<LocDetl> queryStockAll(@Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos, @Param("matnr")String matnr, @Param("batch")String batch,
                                @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
                                @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3);
    List<LocDetl> queryStockAllNew(@Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos, @Param("matnr")String matnr, @Param("batch")String batch,
                                   @Param("model")String model,@Param("volume")Double volume);
    Double queryStockAnfme(String matnr, String batch);
src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -69,6 +69,8 @@
    List<LocDetl> queryStockAll(String orderNo, Set<String> locNos,String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3);
    List<LocDetl> queryStockAllNew(String orderNo, Set<String> locNos,String matnr, String batch, String model, Double volume);
    Double queryStockAnfme(String matnr, String batch);
    List<StockVo> queryStockTotal();
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -119,6 +119,11 @@
    }
    @Override
    public List<LocDetl> queryStockAllNew(String orderNo, Set<String> locNos,String matnr, String batch,String model, Double volume) {
        return this.baseMapper.queryStockAllNew(orderNo,locNos, matnr, batch,model,volume);
    }
    @Override
    public Double queryStockAnfme(String matnr, String batch) {
        return this.baseMapper.queryStockAnfme(matnr, batch);
    }
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -254,41 +254,47 @@
                now,    // 添加时间
                9527L,    // 修改人员
                now,    // 修改时间
                null,    // 备注
                param.getMemo(),    // 备注
                2
        );
        if (!orderService.insert(order)) {
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
//        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(),
                    detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme());
            if (DetlDto.hasLineNumber(list, dto)) {
                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber(),
                        dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            }
        }
        for (DetlDto detlDto : list) {
            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
            }
//            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(),
//                    detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme());
//            if (DetlDto.hasLineNumber(list, dto)) {
//                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber(),
//                        dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
//                assert detlDto != null;
//                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
//            } else {
//                list.add(dto);
//            }
//        }
//        for (DetlDto detlDto : list) {
//            Mat mat = matService.selectByMatnr(detail.getMatnr());
//            if (Cools.isEmpty(mat)) {
//                throw new CoolException(detail.getMatnr() + "编号商品检索失败,请先添加商品");
//            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.sync(mat);
            orderDetl.setLineNumber(detlDto.getLineNumber());
            orderDetl.setBatch(detlDto.getBatch());
            orderDetl.setAnfme(detlDto.getAnfme());
            orderDetl.setBrand(detlDto.getBrand());
            orderDetl.setStandby1(detlDto.getStandby1());
            orderDetl.setStandby2(detlDto.getStandby2());
            orderDetl.setStandby3(detlDto.getStandby3());
            orderDetl.setMatnr(detail.getMatnr());
            orderDetl.setMaktx(detail.getMaktx());
            orderDetl.setBatch(detail.getBatch());
            orderDetl.setModel(detail.getModel());
            orderDetl.setVolume(detail.getVolume());
            orderDetl.setAnfme(detail.getAnfme());
//            orderDetl.sync(mat);
//            orderDetl.setLineNumber(detail.getLineNumber());
//            orderDetl.setBatch(detail.getBatch());
//            orderDetl.setAnfme(detail.getAnfme());
//            orderDetl.setBrand(detlDto.getBrand());
//            orderDetl.setStandby1(detlDto.getStandby1());
//            orderDetl.setStandby2(detlDto.getStandby2());
//            orderDetl.setStandby3(detlDto.getStandby3());
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
            orderDetl.setCreateBy(9527L);
src/main/java/com/zy/common/model/DetlDto.java
@@ -19,7 +19,14 @@
    private String matnr;
    private String batch = "";
    private String maktx;
    private String batch;
    private String model;
    private Double volume;
    private String brand = "";
    private String standby1 = "";
    private String standby2 = "";
src/main/java/com/zy/common/model/LocDto.java
@@ -47,6 +47,12 @@
    private Integer staNo;
    @ApiModelProperty(value= "桶类型")
    private String model;
    @ApiModelProperty(value= "罐装量")
    private Double volume;
    public LocDto() {
    }
src/main/resources/mapper/LocDetlMapper.xml
@@ -185,6 +185,24 @@
            </otherwise>
        </choose>
    </sql>
    <sql id="batchSeqB">
        <choose>
            <when test="batch != null and batch != ''">
                and a.batch = #{batch}
            </when>
            <otherwise>
                and (a.batch IS NULL OR a.batch = '')
            </otherwise>
        </choose>
        <choose>
            <when test="model != null and model != ''">
                and a.model = #{model}
            </when>
            <otherwise>
                and (a.model IS NULL OR a.model = '')
            </otherwise>
        </choose>
    </sql>
    <sql id="batchSeqNew">
        <choose>
            <when test="batch != null and batch != ''">
@@ -620,6 +638,86 @@
        desc
    </select>
    <select id="queryStockAllNew" resultMap="BaseResultMap">
        select a.*
        from asr_loc_detl a
        left join asr_loc_mast b on a.loc_no = b.loc_no
        where 1=1
        and b.loc_sts = 'F'
        and a.matnr = #{matnr}
        and a.volume = #{volume}
        <if test="orderNo != null and orderNo != ''">
            and a.order_no = #{orderNo}
        </if>
        <include refid="batchSeqB"></include>
        <if test="locNos != null and locNos.size > 0">
            and b.loc_no not in
            <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
                #{item}
            </foreach>
        </if>
        order by
        DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
        desc,
        NEWID(),
        case
        when (left(a.loc_no, 2) = '01') then 0
        when (left(a.loc_no, 2) = '02') then 1
        when (left(a.loc_no, 2) = '03') then 1
        when (left(a.loc_no, 2) = '04') then 0
        when (left(a.loc_no, 2) = '05') then 0
        when (left(a.loc_no, 2) = '06') then 1
        when (left(a.loc_no, 2) = '07') then 1
        when (left(a.loc_no, 2) = '08') then 0
        when (left(a.loc_no, 2) = '09') then 0
        when (left(a.loc_no, 2) = '10') then 1
        when (left(a.loc_no, 2) = '11') then 1
        when (left(a.loc_no, 2) = '12') then 0
        when (left(a.loc_no, 2) = '13') then 0
        when (left(a.loc_no, 2) = '14') then 1
        when (left(a.loc_no, 2) = '15') then 1
        when (left(a.loc_no, 2) = '16') then 0
        when (left(a.loc_no, 2) = '17') then 0
        when (left(a.loc_no, 2) = '18') then 1
        when (left(a.loc_no, 2) = '19') then 1
        when (left(a.loc_no, 2) = '20') then 0
        when (left(a.loc_no, 2) = '21') then 0
        when (left(a.loc_no, 2) = '22') then 1
        when (left(a.loc_no, 2) = '23') then 1
        when (left(a.loc_no, 2) = '24') then 0
        when (left(a.loc_no, 2) = '25') then 0
        when (left(a.loc_no, 2) = '26') then 1
        when (left(a.loc_no, 2) = '27') then 1
        when (left(a.loc_no, 2) = '28') then 0
        when (left(a.loc_no, 2) = '29') then 0
        when (left(a.loc_no, 2) = '30') then 1
        when (left(a.loc_no, 2) = '31') then 1
        when (left(a.loc_no, 2) = '32') then 0
        when (left(a.loc_no, 2) = '33') then 0
        when (left(a.loc_no, 2) = '34') then 1
        when (left(a.loc_no, 2) = '35') then 1
        when (left(a.loc_no, 2) = '36') then 0
        when (left(a.loc_no, 2) = '37') then 0
        when (left(a.loc_no, 2) = '38') then 1
        when (left(a.loc_no, 2) = '39') then 1
        when (left(a.loc_no, 2) = '40') then 0
        when (left(a.loc_no, 2) = '41') then 0
        when (left(a.loc_no, 2) = '42') then 1
        when (left(a.loc_no, 2) = '43') then 1
        when (left(a.loc_no, 2) = '44') then 0
        when (left(a.loc_no, 2) = '45') then 0
        when (left(a.loc_no, 2) = '46') then 1
        when (left(a.loc_no, 2) = '47') then 1
        when (left(a.loc_no, 2) = '48') then 0
        else 0
        end
        desc
    </select>
    <select id="queryStockAnfme" resultType="java.lang.Double">
        select sum(anfme) as count from man_loc_detl
         where 1=1
src/main/webapp/static/js/order/order.js
@@ -47,7 +47,7 @@
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160},
            {field: 'createTime$', title: '创建时间', minWidth: 200, width: 200},
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160},
            {field: 'memo', align: 'center',title: '备注', hide: true},
            {field: 'memo', align: 'center',title: '备注'},
            {align: 'center', title: '操作', toolbar: '#operate', width: 180}
        ]],
        request: {
@@ -124,8 +124,9 @@
                            {type: 'numbers'},
                            {field: 'matnr', title: '商品编码', width: 160},
                            {field: 'maktx', title: '商品名称', width: 160},
                            {field: 'specs', title: '规格'},
                            {field: 'batch', title: '批号'},
                            {field: 'model', title: '桶类型', edit: true},
                            {field: 'volume', title: '罐装量', edit: true},
                            {field: 'anfme', title: '待完结数量'},
                            {field: 'qty', title: '待上报数量', style: 'font-weight: bold'},
                            {field: 'workQty', title: '已上报数量'},
@@ -237,7 +238,8 @@
                        {field: 'matnr', title: '商品编码', width: 160},
                        {field: 'maktx', title: '商品名称', width: 200},
                        {field: 'batch', title: '批号', edit: true},
                        {field: 'specs', title: '规格'},
                        {field: 'model', title: '桶类型', edit: true},
                        {field: 'volume', title: '罐装量', edit: true},
                        {field: 'anfme', title: '数量(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                        {field: 'workQty', title: '作业数量',  minWidth: 100, width: 100},
                        // {field: 'unit', title: '单位', width: 80},
src/main/webapp/static/js/orderPakout/order.js
@@ -47,7 +47,7 @@
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160},
            {field: 'createTime$', title: '创建时间', minWidth: 200, width: 200},
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160},
            {field: 'memo', align: 'center',title: '备注', hide: true},
            {field: 'memo', align: 'center',title: '备注'},
            {align: 'center', title: '操作', toolbar: '#operate', width: 180}
        ]],
        request: {
@@ -125,6 +125,8 @@
                            {field: 'matnr', title: '商品编码', width: 160},
                            {field: 'maktx', title: '商品名称', width: 160},
                            {field: 'batch', title: '批号'},
                            {field: 'model', title: '桶类型', edit: true},
                            {field: 'volume', title: '罐装量', edit: true},
                            {field: 'anfme', title: '数量'},
                            {field: 'workQty', title: '作业数量'},
                            {field: 'qty', title: '完成数量', style: 'font-weight: bold'},
@@ -136,7 +138,7 @@
                            // },
                            // {field: 'inQty', title: '已入库量'},
                            // {field: 'color', title: '颜色'},
                            {field: 'specs', title: '规格'}
                            // {field: 'specs', title: '规格'}
                        ]],
                        request: {
                            pageName: 'curr',
@@ -237,11 +239,12 @@
                        {field: 'matnr', title: '商品编码', width: 160},
                        {field: 'maktx', title: '商品名称', width: 200},
                        {field: 'batch', title: '批号', edit: true},
                        {field: 'specs', title: '规格'},
                        {field: 'model', title: '桶类型', edit: true},
                        {field: 'volume', title: '罐装量', edit: true},
                        {field: 'anfme', title: '数量(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                        {field: 'workQty', title: '作业数量',  minWidth: 100, width: 100},
                        // {field: 'unit', title: '单位', width: 80},
                        {field: 'memo', title: '备注' , edit: true},
                        // {field: 'memo', title: '备注' , edit: true},
                        {align: 'center', title: '操作', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
                    ]],
                    done: function (res) {
src/main/webapp/static/js/orderPakout/out.js
@@ -34,8 +34,9 @@
            ,{field: 'orderNo', align: 'center',title: '单据编号', templet: '#orderNoTpl', width: 160}
            ,{field: 'matnr', align: 'center',title: '商品编码', width: 160}
            ,{field: 'maktx', align: 'center',title: '商品名称', width: 200}
            ,{field: 'batch', align: 'center',title: '序列码'}
            ,{field: 'specs', align: 'center',title: '规格'}
            ,{field: 'batch', align: 'center',title: '批号'}
            ,{field: 'model', align: 'center',title: '桶类型'}
            ,{field: 'volume', align: 'center',title: '罐装量'}
            // ,{field: 'anfme', align: 'center',title: '数量'}
            // ,{field: 'qty', align: 'center',title: '作业数量', style: 'font-weight: bold'}
            ,{field: 'enableQty', align: 'center',title: '待出数量', style: 'font-weight: bold'}
@@ -158,11 +159,13 @@
                                cols: [[
                                    // {type: 'checkbox', merge: ['orderNo']},
                                    {field: 'orderNo', title: '单据编号', merge: true, align: 'center'},
                                    {field: 'title', title: '商品', merge: true, align: 'center', width: 350},
                                    {field: 'batch', title: '序列码', align: 'center'},
                                    {field: 'title', title: '商品', merge: true, align: 'center'},
                                    {field: 'batch', title: '批号', align: 'center'},
                                    {field: 'model', title: '桶类型', align: 'center'},
                                    {field: 'volume', title: '罐装量', align: 'center'},
                                    {field: 'anfme', title: '数量', align: 'center', width: 90, style: 'font-weight: bold'},
                                    {field: 'locNo', title: '货位', align: 'center', width: 100, templet: '#locNoTpl'},
                                    {field: 'frozen$', title: '明细', align: 'center', width: 90, templet: '#locFrozen'},
                                    // {field: 'frozen$', title: '明细', align: 'center', width: 90, templet: '#locFrozen'},
                                    {field: 'frozenLoc$', title: '库位', align: 'center', width: 90, templet: '#locFrozenLoc'},
                                    {field: 'staNos', align: 'center', title: '出库站', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
                                    {type: 'checkbox', merge: ['locNo']},
src/main/webapp/views/orderPakout/out.html
@@ -107,9 +107,9 @@
                                </div>
                            </div>
                            <div class="layui-inline">
                                <label class="layui-form-label">序列码:</label>
                                <label class="layui-form-label">批号:</label>
                                <div class="layui-input-inline">
                                    <input name="batch" class="layui-input" placeholder="序列码"/>
                                    <input name="batch" class="layui-input" placeholder="批号"/>
                                </div>
                            </div>
                            <!--                            <div class="layui-inline">-->