王佳豪
2021-06-03 b76802959d44642215a4c60799134e9a5f50469f
宏挺补仓功能
10个文件已修改
228 ■■■■ 已修改文件
src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/WorkController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/param/AsrsTransferParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/param/StockTransferParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/WorkService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/safeSto/locAllot.js 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/safeSto/safeSto.js 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/safeSto/locAllot.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java
@@ -54,6 +54,21 @@
        }
    }
    public Result1 stockTransferLocMode(List<StockTransferParam> params) {
        try {
            String response = new HttpHandler.Builder()
                    .setUri(asrsBaseUrl)
                    .setPath("/open/api/stockOut/locMode")
                    .setJson(JSON.toJSONString(params))
                    .build()
                    .doPost();
            return JSON.parseObject(response, Result1.class);
        } catch (IOException e) {
            e.printStackTrace();
            return new Result1(500, "服务器异常", null);
        }
    }
    /* 获取出库站点 */
    public ResultSite takeSite() {
        try {
src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -153,6 +153,12 @@
        return workService.asrsStockTransfer(number, getUserId());
    }
    @RequestMapping("/stock/transfer/locMode")
    @ManagerAuth(memo = "库存调拨-立库模式")
    public R stockTransferLocMode(@RequestBody AsrsTransferParam number) {
        return workService.asrsStockTransferLocMode(number, getUserId());
    }
    @RequestMapping("/stock/check")
    @ManagerAuth(memo = "库存盘点")
    public R stockCheck(@RequestBody StoCheckParam param) {
src/main/java/zy/cloud/wms/manager/entity/param/AsrsTransferParam.java
@@ -12,6 +12,8 @@
    private String matnr;
    private String locNo;
    private Double anfme;
    private Double safe_qua;
src/main/java/zy/cloud/wms/manager/entity/param/StockTransferParam.java
@@ -10,6 +10,8 @@
    private String matnr;
    private String locNo;
    private Double anfme;
    private Double total;
src/main/java/zy/cloud/wms/manager/service/WorkService.java
@@ -31,6 +31,8 @@
    R asrsStockTransfer(AsrsTransferParam param, Long userId);
    R asrsStockTransferLocMode(AsrsTransferParam param, Long userId);
    R initOrder(InitOrderParam param, Long userId);
    R stockCheck(StoCheckParam param, Long userId);
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -642,6 +642,35 @@
        return R.ok("补仓成功,等待立库调拨");
    }
    @Override
    public R asrsStockTransferLocMode(AsrsTransferParam param, Long userId) {
        if (Cools.isEmpty(param.getNode_id(), param.getMatnr(), param.getSafe_qua(), param.getAmount())) {
            return R.error("数量错误");
        }
        Node node = nodeService.selectById(param.getNode_id());
        Mat mat = matService.selectByMatnr(param.getMatnr());
        if (node == null || mat == null) {
            return R.error();
        }
        double anfme = Arith.subtract(2, param.getSafe_qua(), param.getAmount());
        List<StockTransferParam> params = new ArrayList<>();
        StockTransferParam transferParam = new StockTransferParam();
        transferParam.setMatnr(param.getMatnr());
        transferParam.setAnfme(anfme);
        transferParam.setAllotNo(param.getNode_id()+ "_" +param.getMatnr());
        transferParam.setLocNo(param.getLocNo());
        params.add(transferParam);
        Result1 result = asrsService.stockTransferLocMode(params);
        if (result.getCode() == 500) {
            if (Cools.isEmpty(result.getData())) {
                throw new CoolException(result.getMsg());
            } else {
                throw new CodeCoolException("20001-" + result.getData());
            }
        }
        return R.ok("补仓成功,等待立库调拨");
    }
    @Override
    public R stockCheck(StoCheckParam param, Long userId) {
src/main/webapp/static/js/common.js
@@ -210,14 +210,12 @@
var popupRight;
function RequestParameter() {
    var url = window.location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        var strs = str.split("&");
        for (var i = 0; i < strs.length; i++) {
            theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
        }
function RequestParameter(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable){return pair[1];}
    }
    return(false);
}
src/main/webapp/static/js/safeSto/locAllot.js
@@ -1,39 +1,39 @@
var locDetlData = [];
var pageCurr;
function getCol() {
    var cols = [
        {field: 'anfme', align: 'center',title: '数量', edit:'text', width: 130,  style:'color: blue;font-weight: bold'}
        ,{field: 'locNo', align: 'center',title: '库位号'}
        ,{field: 'matnr', align: 'center',title: '商品编号'}
        ,{field: 'maktx', align: 'center',title: '商品名称'}
        ,{field: 'lgnum', align: 'center',title: '规格'}
        ,{field: 'type', align: 'center',title: '型号', hide: true}
        ,{field: 'color', align: 'center',title: '条码', hide: true}
        ,{field: 'supplier', align: 'center',title: '批号', hide: true}
        ,{field: 'altme', align: 'center',title: '单位'}
        ,{field: 'warehouse', align: 'center',title: '单据编号', hide: true}
        ,{field: 'bname', align: 'center',title: '客户名称', hide: true}
        ,{field: 'brand', align: 'center',title: '品项数', hide: true}
        ,{field: 'memo', align: 'center', title: '备注', hide: true}
        ,{field: 'zpallet', align: 'center',title: '托盘码'}
        {field: 'anfme', align: 'center', title: '数量', width: 130, style: 'color: blue;font-weight: bold'}
        , {field: 'locNo', align: 'center', title: '库位号'}
        , {field: 'matnr', align: 'center', title: '商品编号'}
        , {field: 'maktx', align: 'center', title: '商品名称'}
        , {field: 'lgnum', align: 'center', title: '规格'}
        , {field: 'type', align: 'center', title: '型号', hide: true}
        , {field: 'color', align: 'center', title: '条码', hide: true}
        , {field: 'supplier', align: 'center', title: '批号', hide: true}
        , {field: 'altme', align: 'center', title: '单位'}
        , {field: 'warehouse', align: 'center', title: '单据编号', hide: true}
        , {field: 'bname', align: 'center', title: '客户名称', hide: true}
        , {field: 'brand', align: 'center', title: '品项数', hide: true}
        , {field: 'memo', align: 'center', title: '备注', hide: true}
        , {field: 'zpallet', align: 'center', title: '托盘码'}
    ];
    cols.push({fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:80})
    cols.push({fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 80})
    return cols;
}
layui.use(['table','laydate', 'form'], function() {
layui.use(['table', 'laydate', 'form'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var form = layui.form;
    var param = RequestParameter();
    debugger
    var param = RequestParameter('matnr');
    tableIns = table.render({
        elem: '#chooseData',
        url: baseUrl + '/get/asrsLocDetl',
        where: {
          matnr: 'LSH10648050',
            matnr: param,
        },
        headers: {token: localStorage.getItem('token')},
        // data: [],
@@ -55,12 +55,11 @@
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
                top.location.href = baseUrl + "/";
            }
            pageCurr=curr;
            limit();
            pageCurr = curr;
            getOutBound();
        }
    });
@@ -71,76 +70,68 @@
    });
    // 监听行工具事件
    table.on('tool(chooseData)', function(obj){
    table.on('tool(chooseData)', function (obj) {
        var data = obj.data;
        var site = $("#staNoSelect").val();
        var node_id = RequestParameter('node_id');
        var safe_qua = RequestParameter('safe_qua');
        switch (obj.event) {
            case 'stockOut':
                alert("启动出库");
                break;
        }
    });
    // 监听头工具栏事件
    table.on('toolbar(chooseData)', function (obj) {
        var data = locDetlData;
        switch (obj.event) {
            case 'outbound':
                if (data.length === 0){
                    layer.msg('请先添加库位物料');
                } else {
                    var staNo = $("#staNoSelect").val();
                    if (staNo === "" || staNo === null){
                        layer.msg("请选择出库口");
                        return;
                    }
                    var locDetls = [];
                    data.forEach(function(elem) {
                        locDetls.push({locNo: elem.locNo, matnr: elem.matnr, count: elem.count});
                    });
                    let param = {
                        outSite: staNo,
                        locDetls: locDetls
                    }
                // alert("启动出库");
                if (site == '' || site == null || site == undefined) {
                    layer.msg('请选择出库站点');
                    return;
                }
                var printData = JSON.stringify(data);
                layer.confirm('确定要出库' + data.locNo + '吗?', function (index) {
                    $.ajax({
                        url: baseUrl+"/plate/out/start",
                        url: baseUrl + "/work/stock/transfer/locMode",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        contentType:'application/json;charset=UTF-8',
                        contentType: 'application/json;charset=UTF-8',
                        data: JSON.stringify({
                            node_id: node_id,
                            matnr: data.matnr,
                            safe_qua: safe_qua,
                            amount: data.anfme,
                            locNo: data.locNo,
                        }),
                        dataType: 'json',
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                locDetlData = [];
                                tableIns.reload({data: locDetlData,done:function (res) {limit();getOutBound();}});
                                layer.msg(res.msg);
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            if (res.code === 200) {
                                layer.msg(res.msg, {icon: 1})
                                tableIns.reload();
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg)
                                layer.msg(res.msg, {icon: 2})
                            }
                            layer.close(index);
                        }
                    });
                }
                    layer.close(index);
                });
                break;
        }
    });
    // 获取出库口
    function getOutBound(){
    function getOutBound() {
        $.ajax({
            url: baseUrl+"/available/take/site",
            url: baseUrl + "/available/take/site",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            async: false,
            success: function (res) {
                if (res.code === 200){
                if (res.code === 200) {
                    var tpl = $("#takeSiteSelectTemplate").html();
                    var template = Handlebars.compile(tpl);
                    var html = template(res);
                    $('#staNoSelect').append(html);
                    form.render('select');
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                } else {
                    layer.msg(res.msg)
                }
            }
src/main/webapp/static/js/safeSto/safeSto.js
@@ -105,40 +105,13 @@
        switch (obj.event) {
            // 补仓
            case 'allot':
                // layer.confirm(data.node_name +'补仓 '+ data.matnr + ',数量:' + (data.safe_qua - data.amount), function(){
                //     var index = layer.load(1, {shade: [0.1,'#000']});
                //     $.ajax({
                //         url: baseUrl+"/work/stock/transfer",
                //         headers: {'token': localStorage.getItem('token')},
                //         contentType:'application/json;charset=UTF-8',
                //         data: JSON.stringify({
                //             node_id: data.node_id,
                //             matnr: data.matnr,
                //             safe_qua: data.safe_qua,
                //             amount: data.amount
                //         }),
                //         dataType:'json',
                //         method: 'POST',
                //         success: function (res) {
                //             if (res.code === 200) {
                //                 layer.msg(res.msg, {icon: 1})
                //                 $(".layui-laypage-btn")[0].click();
                //             } else if (res.code === 403) {
                //                 top.location.href = baseUrl+"/";
                //             } else {
                //                 layer.msg(res.msg, {icon: 2})
                //             }
                //             layer.close(index);
                //         }
                //     });
                // });
                layer.open({
                    type: 2,
                    title: '补仓',
                    offset: '100px',
                    area: ['90%', '80%'],
                    shadeClose: true,
                    content: 'locAllot.html?matnr=' + data.matnr,
                    content: 'locAllot.html?matnr=' + data.matnr + '&node_id=' + data.node_id + '&safe_qua=' + data.safe_qua,
                    success: function(layero, index){
                    }
src/main/webapp/views/safeSto/locAllot.html
@@ -45,7 +45,7 @@
                    <option value="">请选择站点</option>
                </select>
                <!-- 2.启动出库 -->
                <button style="margin-left: 18px" class="layui-btn layui-btn-lg layui-btn-disabled" id="btn-outbound" lay-event="outbound">启动出库</button>
                <!--<button style="margin-left: 18px" class="layui-btn layui-btn-lg layui-btn-disabled" id="btn-outbound" lay-event="outbound">启动出库</button>-->
            </div>
        </div>
    </script>