自动化立体仓库 - WMS系统
#
zjj
2023-09-06 408f70e524beb80f555dcd2285cbddb979dbcf35
#
3个文件已修改
379 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locRule/locRule.js 126 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locRule/locRule.html 242 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java
@@ -7,10 +7,7 @@
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.Node;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.InitPakoutParam;
import com.zy.asrs.entity.param.MatnrDto;
import com.zy.asrs.entity.param.PakinParam;
@@ -43,6 +40,8 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private LocRuleService locRuleService;
    @Override
    public Node getTop() {
        Node top = this.selectOne(new EntityWrapper<Node>().eq("type", 0).eq("level", 0));
@@ -230,6 +229,8 @@
    @Override
    public List<String> getRemmendLoc(String matnr) {
        return this.baseMapper.getRommendLoc(matnr);
        LocRule locRule = locRuleService.selectOne(new EntityWrapper<LocRule>().eq("matnr", matnr));
        this.baseMapper.getRommendLoc(locRule.getRowBeg(),locRule.getRowEnd(),locRule.getBayBeg(),locRule.getBayEnd(),locRule.getLevBeg(),locRule.getLevEnd());
        return
    }
}
src/main/webapp/static/js/locRule/locRule.js
@@ -1,4 +1,5 @@
var pageCurr;
var admin;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
@@ -7,7 +8,8 @@
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    admin = layui.admin;
    // 数据渲染
    tableIns = table.render({
@@ -22,29 +24,28 @@
        height: 'full-120',
        cols: [[
            {type: 'checkbox'}
            ,{field: 'id', align: 'center',title: ''}
            ,{field: 'matnr', align: 'center',title: ''}
            ,{field: 'specs', align: 'center',title: ''}
            ,{field: 'model', align: 'center',title: ''}
            ,{field: 'cstmr', align: 'center',title: ''}
            ,{field: 'batch', align: 'center',title: ''}
            ,{field: 'other', align: 'center',title: ''}
            ,{field: 'rowBeg', align: 'center',title: ''}
            ,{field: 'rowEnd', align: 'center',title: ''}
            ,{field: 'bayBeg', align: 'center',title: ''}
            ,{field: 'bayEnd', align: 'center',title: ''}
            ,{field: 'levBeg', align: 'center',title: ''}
            ,{field: 'levEnd', align: 'center',title: ''}
            ,{field: 'limit', align: 'center',title: ''}
            ,{field: 'status', align: 'center',title: ''}
            ,{field: 'createBy', align: 'center',title: ''}
            ,{field: 'createTime$', align: 'center',title: ''}
            ,{field: 'updateBy', align: 'center',title: ''}
            ,{field: 'updateTime$', align: 'center',title: ''}
            ,{field: 'memo', align: 'center',title: ''}
            ,{field: 'mixed$', align: 'center',title: '是否支持混载'}
            ,{field: 'keepGo$', align: 'center',title: '支持混载情况下,没找到库位是否继续寻找'}
            ,{field: 'maktx', align: 'center',title: ''}
            // ,{field: 'id', align: 'center',title: 'ID'}
            ,{field: 'matnr', align: 'center',title: '商品编号'}
            ,{field: 'maktx', align: 'center',title: '商品名称', hide: false}
            ,{field: 'model', align: 'center',title: '型号', hide: true}
            ,{field: 'cstmr', align: 'center',title: '客户', hide: true}
            ,{field: 'batch', align: 'center',title: '批号',hide: true}
            ,{field: 'other', align: 'center',title: '其他', hide: true}
            ,{field: 'rowBeg', align: 'center',title: '开始排'}
            ,{field: 'rowEnd', align: 'center',title: '结束排'}
            ,{field: 'bayBeg', align: 'center',title: '开始列'}
            ,{field: 'bayEnd', align: 'center',title: '结束列'}
            ,{field: 'levBeg', align: 'center',title: '开始层'}
            ,{field: 'levEnd', align: 'center',title: '结束层'}
            ,{field: 'limit', align: 'center',title: '上限', hide: true}
            ,{field: 'status$', align: 'center',title: '状态', hide: true}
            ,{field: 'createBy$', align: 'center',title: '添加人员', hide: true}
            ,{field: 'createTime$', align: 'center',title: '添加时间', hide: true}
            ,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true}
            ,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true}
            ,{field: 'memo', align: 'center',title: '备注', hide: true}
            // ,{field: 'mixed$', align: 'center',title: '混载'}
            ,{field: 'keepGo$', align: 'center',title: '继续搜索'}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
@@ -94,14 +95,14 @@
                showEditModel();
                break;
            case 'deleteData':
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               del(checkStatus.map(function (d) {
                   return d.id;
               }));
               break;
                if (checkStatus.length === 0) {
                    layer.msg('请选择要删除的数据', {icon: 2});
                    return;
                }
                del(checkStatus.map(function (d) {
                    return d.id;
                }));
                break;
            case 'exportData':
                admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
@@ -160,8 +161,8 @@
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '订单状态',
            area: '1000px',
            title: (mData ? '修改' : '添加') + '库区规则',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender(mData);
@@ -193,6 +194,13 @@
            }
        });
    }
    // 导入销售单
    $("#importOrder").click(function () {
        $("#importExcel").trigger("click");
    });
    /* 删除 */
    function del(ids) {
@@ -239,6 +247,11 @@
    function layDateRender(data) {
        setTimeout(function () {
            layDate.render({
                elem: '.layui-laydate-range'
                ,type: 'datetime'
                ,range: true
            });
            layDate.render({
                elem: '#createTime\\$',
                type: 'datetime',
                value: data!==undefined?data['createTime\\$']:null
@@ -268,5 +281,48 @@
    tableIns.reload({
        where: searchData,
        page: {curr: pageCurr}
     });
    });
}
function uploadExcel(obj){
    if(!obj.files) {
        return;
    }
    var file = obj.files[0];
    admin.confirm('确认导入 [' + file.name +'] 文件吗?', function (index) {
        layer.load(1, {shade: [0.1,'#fff']});
        var url = baseUrl + "/locRule/excel/import/auth";
        var form = new FormData();
        form.append("file", file);
        let xhr = new XMLHttpRequest();
        xhr.open("post", url, true);
        xhr.setRequestHeader('token', localStorage.getItem('token'));
        xhr.onload = uploadComplete;
        xhr.onerror =  uploadFailed;
        xhr.onloadend = function () {
            layer.closeAll('loading');
        };
        // xhr.upload.onprogress = progressFunction;
        xhr.upload.onloadstart = function(){
            ot = new Date().getTime();
            oloaded = 0;
        };
        xhr.send(form);
    }, function(index){
    });
}
function uploadComplete(evt) {
    let res = JSON.parse(evt.target.responseText);
    if(res.code === 200) {
        layer.msg(res.msg, {icon: 1});
        insTb.reload({page: {curr: 1}});
    } else {
        alert(res.msg);
        // layer.msg(res.msg, {icon: 2});
    }
}
function uploadFailed(evt) {
    let res = JSON.parse(evt.target.responseText);
    alert(res.msg);
    // layer.msg(res.msg, {icon: 2});
}
src/main/webapp/views/locRule/locRule.html
@@ -18,9 +18,18 @@
            <div class="layui-form toolbar" id="search-box">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">编号:</label>
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">
                            <input class="layui-input" type="text" name="matnr" placeholder="商品编号" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline" style="width: 300px">
                        <div class="layui-input-inline">
                            <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="maktx" placeholder="商品名称" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
@@ -30,6 +39,10 @@
                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
                            <i class="layui-icon">&#xe666;</i>重置
                        </button>
                        <button id="importOrder" class="layui-btn icon-btn btn-add">
                            <i class="layui-icon layui-icon-upload"></i>&nbsp;导入规则
                        </button>
                        <input style="display:none" id="importExcel" type="file" onchange="uploadExcel(this)" >
                    </div>
                </div>
            </div>
@@ -62,149 +75,120 @@
    <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md12">
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <label class="layui-form-label">商品编号: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="matnr" placeholder="请输入">
                        <input class="layui-input" name="matnr" placeholder="请输入商品编号">
                    </div>
                </div>
                <!--                <div class="layui-form-item">-->
                <!--                    <label class="layui-form-label">规格: </label>-->
                <!--                    <div class="layui-input-block">-->
                <!--                        <input class="layui-input" name="specs" placeholder="请输入规格">-->
                <!--                    </div>-->
                <!--                </div>-->
                <!--                <div class="layui-form-item">-->
                <!--                    <label class="layui-form-label">型号: </label>-->
                <!--                    <div class="layui-input-block">-->
                <!--                        <input class="layui-input" name="model" placeholder="请输入型号">-->
                <!--                    </div>-->
                <!--                </div>-->
                <!--                <div class="layui-form-item">-->
                <!--                    <label class="layui-form-label">客户: </label>-->
                <!--                    <div class="layui-input-block">-->
                <!--                        <input class="layui-input" name="cstmr" placeholder="请输入客户">-->
                <!--                    </div>-->
                <!--                </div>-->
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <label class="layui-form-label">商品名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="specs" placeholder="请输入">
                        <input class="layui-input" name="maktx" placeholder="请输入商品名称">
                    </div>
                </div>
                <!--                <div class="layui-form-item">-->
                <!--                    <label class="layui-form-label">其他: </label>-->
                <!--                    <div class="layui-input-block">-->
                <!--                        <input class="layui-input" name="other" placeholder="请输入其他">-->
                <!--                    </div>-->
                <!--                </div>-->
                <!--                <div class="layui-form-item">-->
                <!--                    <label class="layui-form-label">上限: </label>-->
                <!--                    <div class="layui-input-block">-->
                <!--                        <input class="layui-input" name="limit" placeholder="请输入上限">-->
                <!--                    </div>-->
                <!--                </div>-->
                <!--                <div class="layui-form-item">-->
                <!--                    <label class="layui-form-label">混载: </label>-->
                <!--                    <div class="layui-input-block">-->
                <!--                        <select name="mixed">-->
                <!--                            <option value="1" selected>是</option>-->
                <!--                            <option value="0">否</option>-->
                <!--                        </select>-->
                <!--                    </div>-->
                <!--                </div>-->
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="model" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="cstmr" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="batch" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="other" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="rowBeg" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="rowEnd" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="bayBeg" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="bayEnd" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="levBeg" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="levEnd" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="limit" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="status" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="createBy" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="createTime" id="createTime$" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="updateBy" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="updateTime" id="updateTime$" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="memo" placeholder="请输入">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">是否支持混载: </label>
                    <div class="layui-input-block">
                        <select name="mixed">
                            <option value="">请选择是否支持混载</option>
                            <option value="0">不支持</option>
                            <option value="1">支持</option>
                        </select>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">支持混载情况下,没找到库位是否继续寻找: </label>
                    <label class="layui-form-label">继续搜索: </label>
                    <div class="layui-input-block">
                        <select name="keepGo">
                            <option value="">请选择支持混载情况下,没找到库位是否继续寻找</option>
                            <option value="0">否</option>
                            <option value="1">是</option>
                            <option value="0" selected>否</option>
                        </select>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="maktx" placeholder="请输入">
                    </div>
                </div>
             </div>
            </div>
            <div class="layui-col-md6">
                <!--                <div class="layui-inline">-->
                <!--                    <label class="layui-form-label">排范围</label>-->
                <!--                    <div class="layui-input-inline" style="width: 100px;">-->
                <!--                        <input type="text" name="price_min" placeholder="¥" autocomplete="off" class="layui-input">-->
                <!--                    </div>-->
                <!--                    <div class="layui-form-mid">-</div>-->
                <!--                    <div class="layui-input-inline" style="width: 100px;">-->
                <!--                        <input type="text" name="price_max" placeholder="¥" autocomplete="off" class="layui-input">-->
                <!--                    </div>-->
                <!--                </div>-->
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">开始排: </label>
                    <div class="layui-input-block">
                        <input type="number" min="1" class="layui-input" name="rowBeg" placeholder="请输入开始排" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">结束排: </label>
                    <div class="layui-input-block">
                        <input type="number" min="1" class="layui-input" name="rowEnd" placeholder="请输入结束排" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">开始列: </label>
                    <div class="layui-input-block">
                        <input type="number" min="1" class="layui-input" name="bayBeg" placeholder="请输入开始列" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">结束列: </label>
                    <div class="layui-input-block">
                        <input type="number" min="1" class="layui-input" name="bayEnd" placeholder="请输入结束列" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">开始层: </label>
                    <div class="layui-input-block">
                        <input type="number" min="1" class="layui-input" name="levBeg" placeholder="请输入开始层" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">结束层: </label>
                    <div class="layui-input-block">
                        <input type="number" min="1" class="layui-input" name="levEnd" placeholder="请输入结束层" lay-vertype="tips" lay-verify="required" required="">
                    </div>
                </div>
            </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">