王佳豪
2021-03-12 d113e15bf1fb77152d0476b4340cc0b6ed24e63d
1.0.3
新增pda平仓移库功能
1个文件已添加
8个文件已修改
286 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocNormalController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocNormalMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocNormalService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocNormalMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/index.html 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/locNormalIn.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/locNormalMove.html 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/locNormalOut.html 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocNormalController.java
@@ -186,4 +186,27 @@
        locNormalService.pdaLocNormalOut(list);
        return R.ok();
    }
    @RequestMapping(value = "/locNormal/pda/warehouseQuery")
    @ManagerAuth(memo = "pda根据库区查询物料清单")
    @Transactional
    public R locNormalPdaWarehouseQuery(String warehouse, String matnr) {
        List<LocNormal> list = locNormalService.pdaLocNormalWarehouseQuery(warehouse, matnr);
        return R.ok(list);
    }
    @RequestMapping(value = "/locNormal/pda/move")
    @ManagerAuth(memo = "pda移库")
    @Transactional
    public R LocNormalPdaMove(@RequestBody LocNormalParam param) {
        Long userId = getUserId();
        Date timeNow = new Date();
        List<LocNormal> list = param.getNormalList();
        for (Integer i = 0; i < list.size(); i++) {
            list.get(i).setModiUser(userId);
            list.get(i).setModiTime(timeNow);
        }
        locNormalService.pdaLocNormalMove(list);
        return R.ok();
    }
}
src/main/java/com/zy/asrs/mapper/LocNormalMapper.java
@@ -33,4 +33,8 @@
    public void pdaLocNormalOut1(@Param("id") Integer id,@Param("matnr") String matnr, @Param("modiUser") Long modiUser, @Param("modiTime") Date modiTime, @Param("warehouse") String warehouse);
    public void pdaLocNormalOut2(@Param("id") Integer id,@Param("matnr") String matnr,@Param("anfme") BigDecimal anfme, @Param("modiUser") Long modiUser, @Param("modiTime") Date modiTime, @Param("warehouse") String warehouse);
    public List<LocNormal> pdaLocNormalWarehouseQuery(@Param("warehouse") String warehouse, @Param("matnr") String matnr);
    public void pdaLocNormalMove(List<LocNormal> list);
}
src/main/java/com/zy/asrs/service/LocNormalService.java
@@ -24,4 +24,8 @@
  public List<LocNormal> pdaLocNormalQuery(String matnr, String warehouse);
  public void pdaLocNormalOut(List<LocNormal> list);
  public List<LocNormal> pdaLocNormalWarehouseQuery(String warehouse, String matnr);
  public void pdaLocNormalMove(List<LocNormal> list);
}
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
@@ -62,4 +62,14 @@
            }
        }
    }
    @Override
    public List<LocNormal> pdaLocNormalWarehouseQuery(String warehouse, String matnr) {
        return baseMapper.pdaLocNormalWarehouseQuery(warehouse, matnr);
    }
    @Override
    public void pdaLocNormalMove(List<LocNormal> list) {
        baseMapper.pdaLocNormalMove(list);
    }
}
src/main/resources/mapper/LocNormalMapper.xml
@@ -83,4 +83,24 @@
        update asr_loc_normal set anfme = #{anfme, jdbcType=DECIMAL},modi_user = #{modiUser, jdbcType=DECIMAL},modi_time = #{modiTime, jdbcType=TIMESTAMP}
        where matnr = #{matnr,jdbcType=VARCHAR} and warehouse = #{warehouse,jdbcType=VARCHAR} and id = #{id,jdbcType=DECIMAL}
    </update>
    <select id="pdaLocNormalWarehouseQuery" resultMap="BaseResultMap">
        select id,matnr, maktx, warehouse from asr_loc_normal
        where warehouse = #{warehouse, jdbcType=VARCHAR}
        and state = '1'
        <if test="matnr != ''">
            and matnr = #{matnr, jdbcType=VARCHAR}
        </if>
        COLLATE Chinese_PRC_CS_AS
    </select>
    <update id="pdaLocNormalMove">
        BEGIN
        <foreach collection="list" item="item" index="index">
            update asr_loc_normal set warehouse = #{item.warehouse,jdbcType=VARCHAR},
            modi_user = #{item.modiUser, jdbcType=DECIMAL},modi_time = #{item.modiTime, jdbcType=TIMESTAMP}
            where id = #{item.id,jdbcType=DECIMAL}
        </foreach>
        END;
    </update>
</mapper>
src/main/webapp/views/pda/index.html
@@ -77,6 +77,10 @@
        }
        td {
            color: white;
            background-image: linear-gradient(to top, #09203f 0%, #537895 100%);
            /*background-color: rgba(204,204,204,.6);*/
            border-radius: 8px;
            text-align: center;
            vertical-align: middle;
            height: 80px;
@@ -87,29 +91,34 @@
<body>
<!-- 导航菜单 -->
<table id="navList" style="width: 100%; border-color: #e6e6e6" border="1" cellspacing="1">
<table id="navList" style="width: 100%; border-color: #e6e6e6" border="0" cellspacing="2">
    <tr>
        <td>
            <a id="comb" onclick="nav(this.id)" class="nav-select" href="#">组托</a>
            <div id="comb" onclick="nav(this.id)">组托</div>
        </td>
        <td>
            <a id="combPro" onclick="nav(this.id)" class="nav-unselect" href="#">关联组托</a>
            <div id="combPro" onclick="nav(this.id)">关联组托</div>
        </td>
    </tr>
    <tr>
        <td>
            <a id="stockIn" onclick="nav(this.id)" class="nav-unselect" href="#">入库</a>
            <div id="stockIn" onclick="nav(this.id)">入库</div>
        </td>
        <td>
            <a id="stockOut" onclick="nav(this.id)" class="nav-unselect" href="#">出库</a>
            <div id="stockOut" onclick="nav(this.id)">出库</div>
        </td>
    </tr>
    <tr>
        <td>
            <a id="locNormalIn" onclick="nav(this.id)" class="nav-unselect" href="#">平仓入库</a>
            <div id="locNormalIn" onclick="nav(this.id)">平仓入库</div>
        </td>
        <td>
            <a id="locNormalOut" onclick="nav(this.id)" class="nav-unselect" href="#">平仓出库</a>
            <div id="locNormalOut" onclick="nav(this.id)">平仓出库</div>
        </td>
    </tr>
    <tr>
        <td>
            <div id="locNormalMove" onclick="nav(this.id)">平仓移库</div>
        </td>
    </tr>
</table>
@@ -122,8 +131,8 @@
<script>
    // 导航栏
    function nav(id) {
        $('.nav-select').attr("class", "nav-unselect");
        $('#' + id).attr("class", "nav-select");
//        $('.nav-select').attr("class", "nav-unselect");
//        $('#' + id).attr("class", "nav-select");
        $('#content').attr("src", id + ".html");
        $('#navList').css('display', 'none');
        $('#content').css('display', 'block');
src/main/webapp/views/pda/locNormalIn.html
@@ -20,7 +20,7 @@
<header>
    <div>
        <div class="layui-input-inline">
            <label class="layui-form-label">库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</label>
            <label class="layui-form-label">库区</label>
            <input class="layui-input" type="number" id="warehouse" onkeyup="findCode(this)" placeholder="扫码 / 输入"
                   autocomplete="off">
        </div>
@@ -128,7 +128,7 @@
    // 重置
    function reset() {
        $('#code').val("");
        $('#warehouse').val("");
        matData = [];
        tableIns.reload({data: matData});
    }
@@ -202,8 +202,8 @@
            $("#comb-btn").focus();
            comb();
        } else if (key === 113) {
            $("#code").val("");
            $("#code").focus();
            $("#warehouse").val("");
            $("#warehouse").focus();
        }
    }
src/main/webapp/views/pda/locNormalMove.html
New file
@@ -0,0 +1,181 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>平仓移库</title>
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/pda.css" media="all">
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
</head>
<body>
<!-- 头部 -->
<header>
    <div>
        <div class="layui-input-inline">
            <label class="layui-form-label">物料编码</label>
            <input class="layui-input" id="matnr" onkeyup="find()" placeholder="扫码 / 输入"
                   autocomplete="off" style="width: 60%">
        </div>
    </div>
    <div>
        <div class="layui-input-inline">
            <label class="layui-form-label" style="margin-left: 16px">源库区</label>
            <input class="layui-input" type="number" id="warehouse1" onkeyup="find()" placeholder="扫码 / 输入"
                   autocomplete="off" style="width: 60%">
        </div>
    </div>
    <div>
        <div class="layui-input-inline">
            <label class="layui-form-label">目标库区</label>
            <input class="layui-input" type="number" id="warehouse2" placeholder="扫码 / 输入"
                   autocomplete="off" style="width: 60%">
        </div>
    </div>
</header>
<!-- 主体 -->
<main>
    <table class="layui-table" id="locNormalMove" lay-filter="locNormalMove"></table>
</main>
<!-- 尾部 -->
<footer>
    <div class="layui-btn-container">
        <button type="button" id="reset-btn" class="layui-btn layui-btn-primary" onclick="reset()">重置</button>
        <button type="button" id="comb-btn" class="layui-btn layui-btn-normal " onclick="move()"
                style="margin-left: 20px">转移
        </button>
        <button type="button" id="retrun-btn" class="layui-btn layui-btn-primary " onclick="back()"
                style="margin-left: 20px">返回
        </button>
        <span id="tips"></span>
    </div>
</footer>
</body>
<script>
    var tableIns;
    layui.use(['table', 'laydate', 'form'], function () {
        var table = layui.table;
        var $ = layui.jquery;
        var layer = layui.layer;
        var form = layui.form;
        tableIns = table.render({
            id: 'locNormalMove',
            elem: '#locNormalMove',
            data: [],
            limit: 500,
            cellMinWidth: 50,
            cols: [[
                {type: 'checkbox', fixed: 'left', width: 30},
                {field: 'matnr', align: 'center', title: '编码', event: 'detail', width: 80},
                {field: 'maktx', align: 'center', title: '名称', event: 'detail'},
                {field: 'warehouse', align: 'center', title: '库区', event: 'detail', width: 50}
            ]],
            done: function (res, curr, count) {
            }
        });
    });
    /* 库存转移 */
    move = () => {
        // 判断目标库区是否为空
        var warehouse1 = $("#warehouse1").val();
        var warehouse2 = $("#warehouse2").val();
        if (!warehouse2 || warehouse2 == '') {
            layer.msg("请确定目标库区");
            return;
        }
        if (warehouse1 == warehouse2) {
            layer.msg("目标库区和源库区一致");
            return;
        }
        // 判断勾选数据是否为空
        var table = layui.table;
        var checkStatus = table.checkStatus('locNormalMove');
        var data = checkStatus.data;
        if (data.length == 0) {
            layer.msg("请选择物料");
            return;
        }
        // 处理勾选数据修改warehouse为目标库区
        data.map(function (item) {
            item.warehouse = warehouse2;
        });
        // 请求移库接口,选中的物料的warehouse更新为目标库区
        $.ajax({
            url: baseUrl + "/locNormal/pda/move",
            headers: {'token': localStorage.getItem('token')},
            data: JSON.stringify({
                normalList: data,
            }),
            contentType: 'application/json;charset=UTF-8',
            method: 'POST',
            async: false,
            success: function (res) {
                if (res.code === 200) {
                    tips("移库成功")
                    reset();
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/pda";
                } else {
                    tips(res.msg, true)
                }
            },
        });
    }
    /* 根据库区号检索物料信息 */
    find = () => {
        var warehouse = $("#warehouse1").val();
        var matnr = $("#matnr").val();
        // 查询接口
        $.ajax({
            url: baseUrl + "/locNormal/pda/warehouseQuery?warehouse=" + warehouse + "&matnr=" + matnr,
            headers: {'token': localStorage.getItem('token')},
            method: 'GET',
            async: false,
            success: function (res) {
                if (res.code === 200) {
                    tableIns.reload({
                        data: res.data,
                    })
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/pda";
                } else {
                    tips(res.msg, true)
                }
            },
        });
    }
    window.onload = function () {
        document.getElementById("matnr").focus();
    }
    function back() {
        parent.backIndex();
    }
    /**
     * 提示信息
     * @param msg 提示内容
     * @param warn true:红色字体
     */
    function tips(msg, warn) {
        layer.msg(msg, {icon: warn?2:1})
    }
    function reset() {
        $('#warehouse1').val("");
        $('#warehouse2').val("");
        $('#matnr').val("");
        tableIns.reload({data: []});
    }
</script>
</html>
src/main/webapp/views/pda/locNormalOut.html
@@ -46,7 +46,7 @@
<header>
    <div>
        <div class="layui-input-inline">
            <label class="layui-form-label">库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</label>
            <label class="layui-form-label" style="margin-left: 32px">库区</label>
            <input class="layui-input" type="number" id="warehouse" onkeyup="findCode(this, 'warehouse')" placeholder="扫码 / 输入"
                   autocomplete="off">
        </div>
@@ -312,5 +312,12 @@
            },
        });
    }
    function reset() {
        $("#warehouse").val(null);
        $("#matnr").val(null);
        normalOutList = [];
        tableIns.reload({data: normalOutList});
    }
</script>
</html>