#
luxiaotao1123
2021-03-13 40bfd7078ca4e46ae127dea1cf37870af2865c46
#
1个文件已添加
3个文件已修改
155 ■■■■ 已修改文件
src/main/java/zy/cloud/wms/common/service/MainService.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/custOrder/custOrder.js 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/custOrder/custOrder.html 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/service/MainService.java
@@ -38,14 +38,56 @@
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
//    @Transactional
//    public List<StoPreVo> stockOutPreview0(OrderStoDto dto) {
//        if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) {
//            throw new CoolException("数据异常,请联系管理员");
//        }
//        // 检查库存是否足够
//        locDetlService.checkLocDetlCount(dto.getNumber());
//        List<StoPreVo> result = new ArrayList<>();
//        for (CustOrder custOrder : dto.getCustOrders()) {
//            // 判断物料是否存在
//            Mat mat = matService.selectByMatnr(custOrder.getUserCode());
//            if (null == mat) {
//                throw new CoolException(custOrder.getUserCode() + "物料尚未更新。" + custOrder.getNumber() +"单据因此中断!");
//            }
//            // 查询存有当前物料的货位
//            List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr());
//            double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ;
//            // 视图对象
//            StoPreVo vo = new StoPreVo();
//            vo.setMatnr(mat.getMatnr());
//            vo.setMaktx(mat.getMaktx());
//            vo.setAnfme(issued);
//            List<StoPreVo.StoPreLoc> locVos = new ArrayList<>();
//            vo.setLocs(locVos);
//            for (LocDetl locDetl : locDetls) {
//                if (issued > 0) {
//                    StoPreVo.StoPreLoc locVo = new StoPreVo.StoPreLoc();
//                    locVo.setLocNo(locDetl.getLocNo());
//                    locVo.setNodeId(locDetl.getNodeId());
//                    locVo.setTotal(locDetl.getAnfme());
//                    locVo.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
//                    locVo.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr()));
//                    locVos.add(locVo);
//                    // 剩余待出数量递减
//                    issued = issued - locDetl.getAnfme();
//                }
//            }
//            result.add(vo);
//        }
//        return result;
//    }
    @Transactional
    public List<StoPreVo> stockOutPreview(OrderStoDto dto) {
    public List<StoPreTab> stockOutPreview(OrderStoDto dto) {
        if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) {
            throw new CoolException("数据异常,请联系管理员");
        }
        // 检查库存是否足够
        locDetlService.checkLocDetlCount(dto.getNumber());
        List<StoPreVo> result = new ArrayList<>();
        List<StoPreTab> result = new ArrayList<>();
        for (CustOrder custOrder : dto.getCustOrders()) {
            // 判断物料是否存在
            Mat mat = matService.selectByMatnr(custOrder.getUserCode());
@@ -55,27 +97,27 @@
            // 查询存有当前物料的货位
            List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr());
            double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ;
            // 视图对象
            StoPreVo vo = new StoPreVo();
            vo.setMatnr(mat.getMatnr());
            vo.setMaktx(mat.getMaktx());
            vo.setAnfme(issued);
            List<StoPreVo.StoPreLoc> locVos = new ArrayList<>();
            vo.setLocs(locVos);
            double anfme = issued;
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
                    StoPreVo.StoPreLoc locVo = new StoPreVo.StoPreLoc();
                    locVo.setLocNo(locDetl.getLocNo());
                    locVo.setNodeId(locDetl.getNodeId());
                    locVo.setTotal(locDetl.getAnfme());
                    locVo.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                    locVo.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr()));
                    locVos.add(locVo);
                    // 视图对象
                    StoPreTab tab = new StoPreTab();
                    tab.setTitle(mat.getMatnr() + "<br>" + mat.getMaktx() + "<br>数量:" + anfme);
                    tab.setMatnr(mat.getMatnr());
                    tab.setMaktx(mat.getMaktx());
                    tab.setAnfme(anfme);
                    tab.setLocNo(locDetl.getLocNo());
                    tab.setNodeId(locDetl.getNodeId());
                    tab.setTotal(locDetl.getAnfme());
                    tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                    tab.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr()));
                    result.add(tab);
                    // 剩余待出数量递减
                    issued = issued - locDetl.getAnfme();
                }
            }
            result.add(vo);
        }
        return result;
    }
src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java
New file
@@ -0,0 +1,29 @@
package zy.cloud.wms.manager.entity;
import lombok.Data;
/**
 * Created by vincent on 2021/3/13
 */
@Data
public class StoPreTab {
    private String title;
    private String matnr;
    private String maktx;
    private Double anfme;
    private String locNo;
    private Long nodeId;
    private Double total;
    private Double reduce;
    private Boolean prior;
}
src/main/webapp/static/js/custOrder/custOrder.js
@@ -196,6 +196,7 @@
                    }),
                    method: 'POST',
                    success: function (res) {
                        console.log(res)
                        layer.close(loadIndex);
                        // 成功
                        if (res.code === 200){
@@ -204,19 +205,38 @@
                                ,title: false
                                ,closeBtn: false
                                ,offset: '100px'
                                ,area: '300px;'
                                ,area: '1200px;'
                                ,shade: 0.5
                                ,id: 'LAY_layuipro'
                                ,btn: ['马上拣货', '稍后处理']
                                ,btnAlign: 'c'
                                ,moveType: 1 //拖拽模式,0或者1
                                ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">你知道吗?亲!<br>layer ≠ layui<br><br>layer只是作为Layui的一个弹层模块,由于其用户基数较大,所以常常会有人以为layui是layerui<br><br>layer虽然已被 Layui 收编为内置的弹层模块,但仍然会作为一个独立组件全力维护、升级。<br><br>我们此后的征途是星辰大海 ^_^</div>'
                                ,success: function(layero){
                                    var btn = layero.find('.layui-layer-btn');
                                    btn.find('.layui-layer-btn0').attr({
                                        href: 'http://www.layui.com/'
                                        ,target: '_blank'
                                // ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">你知道吗?亲!<br>layer ≠ layui<br><br>layer只是作为Layui的一个弹层模块,由于其用户基数较大,所以常常会有人以为layui是layerui<br><br>layer虽然已被 Layui 收编为内置的弹层模块,但仍然会作为一个独立组件全力维护、升级。<br><br>我们此后的征途是星辰大海 ^_^</div>'
                                ,content: $('#stoukOutPreview')
                                ,success: function(layero, index){
                                    table.render({
                                        elem: '#stoPreTab',
                                        // url: 'tablex-tb2.json',
                                        data: res.data,
                                        page: true,
                                        cellMinWidth: 100,
                                        cols: [[
                                            {field: 'title', title: '名称', sort: true},
                                            {field: 'maktx', title: '菜单名称'},
                                            {field: 'locNo', title: '货位'},
                                            {field: 'reduce', title: '出库数量'},
                                            {field: 'prior', title: '推荐货位'},
                                        ]],
                                        done: function () {
                                            tableX.merges('stoPreTab', [0]);
                                        }
                                    });
                                    // var btn = layero.find('.layui-layer-btn');
                                    // btn.find('.layui-layer-btn0').attr({
                                    //     href: 'http://www.layui.com/'
                                    //     ,target: '_blank'
                                    // });
                                }
                            });
                        // 缺料
src/main/webapp/views/custOrder/custOrder.html
@@ -9,6 +9,14 @@
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
    <style>
        .layui-table-cell {
            height:auto;
            overflow:visible;
            text-overflow:inherit;
            white-space:normal;
        }
    </style>
</head>
<body>
@@ -87,7 +95,15 @@
<script type="text/javascript" src="../../static/js/custOrder/custOrder.js" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
<!-- 打印容器 -->
<div id="pakoutPrintBox" style="display: none"></div>
<!-- 出库预览容器 -->
<div id="stoukOutPreview" style="display: none">
    <div  style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
        <span style="font-size: large; font-weight: bold">拣货单预览</span>
    </div>
    <table id="stoPreTab" lay-filter="stoPreTab"></table>
</div>
</body>