| src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/controller/WrkMastController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/MobileService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/views/mat/mat.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/views/pda/EmptyIn.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/views/pda/index.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -340,4 +340,16 @@ return R.ok("出库成功"); } /** * 空托盘入库 */ @RequestMapping(value = "/empty/wrk/create") @ManagerAuth(memo = "空托盘入库") public R createWrk(@RequestParam String barcode){ if (Cools.isEmpty(barcode)){ return R.error("参数为空!"); } mobileService.createEmptyWrk(barcode,getUserId()); return R.ok(); } } src/main/java/com/zy/asrs/controller/WrkMastController.java
@@ -164,6 +164,4 @@ wrkMastService.updateBatchById(list); return R.ok(); } } src/main/java/com/zy/asrs/service/MobileService.java
@@ -38,4 +38,6 @@ void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl, Double curOutQty, Integer ioType, Long userId, Date now); void createEmptyWrk(String barcode, Long userId); } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -629,4 +629,65 @@ throw new CoolException(locDetl.getLocNo() + "库位不是在库状态"); } } @Override @Transactional public void createEmptyWrk(String barcode, Long userId) { WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); if (!Cools.isEmpty(wrkMast)){ throw new CoolException("托盘编号" + barcode + "已存在工作档"); } List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); if (!Cools.isEmpty(waitPakins)){ throw new CoolException("托盘编号" + barcode + "已组托"); } LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("barcode", barcode)); if (!locMast.getLocSts().equals("O")){ throw new CoolException("托盘编号" + barcode + "库位状态不是空库位"); } int workNo = commonService.getWorkNo(0); Date now = new Date(); // 生成工作档 WrkMast emptyWrkMast = new WrkMast(); emptyWrkMast.setWrkNo(workNo); emptyWrkMast.setIoTime(new Date()); emptyWrkMast.setWrkSts(2L); // 工作状态:生成入库ID emptyWrkMast.setIoType(10); // 入出库状态:1.空托盘入库 emptyWrkMast.setIoPri(30D); // 优先级 emptyWrkMast.setCrnNo(1); emptyWrkMast.setSourceStaNo(101); emptyWrkMast.setStaNo(0); emptyWrkMast.setLocNo(locMast.getLocNo()); emptyWrkMast.setBarcode(barcode); // 托盘码 emptyWrkMast.setFullPlt("N"); // 满板:N emptyWrkMast.setPicking("N"); // 拣料 emptyWrkMast.setExitMk("N"); // 退出 emptyWrkMast.setEmptyMk("Y"); // 空板 emptyWrkMast.setLinkMis("Y"); emptyWrkMast.setCtnType(0); // 容器类型 // 操作人员数据 emptyWrkMast.setAppeTime(now); emptyWrkMast.setModiTime(now); emptyWrkMast.setModiUser(userId); emptyWrkMast.setAppeUser(userId); boolean res = wrkMastService.insert(emptyWrkMast); if (!res) { throw new CoolException("保存空托盘入库工作档失败"); } // 更新源站点信息 BasDevp sourceStaNo = basDevpService.checkSiteStatus(101, true); sourceStaNo.setWrkNo(emptyWrkMast.getWrkNo()); sourceStaNo.setModiTime(now); if (!basDevpService.updateById(sourceStaNo)){ throw new CoolException("更新源站失败"); } // 更新目标库位状态 locMast.setLocSts("S"); // S.入库预约 locMast.setModiTime(now); if (!locMastService.updateById(locMast)){ throw new CoolException("改变库位状态失败"); } } } src/main/webapp/views/mat/mat.html
@@ -244,9 +244,9 @@ </div> <div class="layui-form-item"> <label class="layui-form-label">配置</label> <label class="layui-form-label">单位</label> <div class="layui-input-block"> <input name="specs" placeholder="请输入配置" class="layui-input"> <input name="unit" placeholder="请输入单位" class="layui-input"> </div> </div> @@ -283,9 +283,9 @@ </div> <div class="layui-form-item"> <label class="layui-form-label">特殊物料</label> <label class="layui-form-label">批次</label> <div class="layui-input-block"> <input name="be_batch" placeholder="请输入特殊物料2" class="layui-input"> <input name="barcode" placeholder="请输入批次" class="layui-input"> </div> </div> src/main/webapp/views/pda/EmptyIn.html
New file @@ -0,0 +1,184 @@ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, target-densitydpi=high-dpi, initial-scale=1.0, user-scalable=no"/> <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> <style> </style> </head> <body> <!-- 头部 --> <header> <div class="layui-input-inline"> <label class="layui-form-label">条码</label> <input class="layui-input" type="text" inputmode="numeric" pattern="[0-9]*" id="code" onkeyup="findCode(this)" oninput="this.value=this.value.replace(/\\D/g,'').slice(0,8)" placeholder="扫码 / 输入" autocomplete="off"> </div> <!-- <div style="margin: 5px 5px">--> <!-- <button id="mat-btn" type="button" class="layui-btn layui-btn-normal" onclick="getMat()"><i class="layui-icon">+</i>提取</button>--> <!-- </div>--> </header> <!-- 主体 --> <main> <table class="layui-table" id="chooseData" lay-filter="chooseData"></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="comb()" style="margin-left: 20px">空托盘入库</button> <span id="tips"></span> </div> </footer> </body> <script> var tableIns; var layer; // 初始化 layui,否则 layer/tableIns 为空会导致点击无反馈(甚至直接抛异常) layui.use(['table', 'form'], function () { var table = layui.table; layer = layui.layer; tableIns = table.render({ elem: '#chooseData', data: [], limit: 500, cellMinWidth: 50, cols: [[ // {fixed: 'left', align: 'center', field: 'msg', title: '提示'} ]] }); }); window.onload = function(){document.getElementById("code").focus();} function findCode(el) { if (el.value.length === 8) { $('#mat-btn').focus(); } } var matCodeLayerIdx; // function getMat() { // matCodeLayerIdx = layer.open({ // type: 2, // title: '提取物料', // shade: [0.3,'#000'], // area: ['90%', '80%'], // content: 'matQuery.html', // success: function(layero, index){ // $('.layui-layer-title').css('font-size', '16px'); // }, // end: function () { // $('#mat-btn').focus(); // } // }); // } // 添加表格数据 var matData = []; // function addTableData(data) { // if (isEmpty(data.maktx)){ // tips("提取失败", true); // return; // } // let toPush = true; // for (var j=0;j<matData.length;j++){ // if (data.matnr === matData[j].matnr) { // matData[j].anfme = Number(matData[j].anfme) + Number(data.anfme); // toPush = false; // } // } // if (toPush) { // matData.push(data); // } // tips("提取成功"); // tableIns.reload({data: matData}); // } // 重置 function reset() { $('#code').val(""); matData = []; if (tableIns && typeof tableIns.reload === 'function') { tableIns.reload({data: matData}); } $('#code').focus(); } // 空托盘入库 function comb() { var barcode = ($('#code').val() || '').trim(); if (isEmpty(barcode)) { tips("条码为空", true); return; } if (barcode.length !== 8) { tips("条码必须为8位", true); return; } $.ajax({ url: baseUrl + "/mobile/empty/wrk/create", headers: {'token': localStorage.getItem('token')}, data: {barcode: barcode}, method: 'POST', async: true, success: function (res) { if (res.code === 200) { reset(); tips("空板入库启动成功") } else if (res.code === 403) { top.location.href = baseUrl + "/pda"; } else { tips(res.msg, true) } }, error: function () { tips("请求失败,请检查网络或接口状态", true); } }) } /** * 提示信息 * @param msg 提示内容 * @param warn true:红色字体 */ function tips(msg, warn) { // var tips = $('#tips'); // tips.html(msg); // tips.css("color", warn?"red":'#666'); var l = layer || (window.layui && layui.layer) || window.layer; if (l && typeof l.msg === 'function') { l.msg(msg, {icon: warn?2:1}); } else { alert(msg); } } document.onkeyup = function (e) { if (window.event)//如果window.event对象存在,就以此事件对象为准 e = window.event; var key = e.charCode || e.keyCode; if (key === 115) { $("#comb-btn").focus(); comb(); } else if (key === 113) { $("#code").val(""); $("#code").focus(); } } </script> </html> src/main/webapp/views/pda/index.html
@@ -74,6 +74,7 @@ <!-- 导航栏 --> <ul class="nav"> <li><a id="comb" onclick="nav(this.id)" class="nav-select" href="#">组托</a></li> <li><a id="EmptyIn" onclick="nav(this.id)" class="nav-select" href="#">空托盘入库</a></li> <!-- <li><a id="stockIn" onclick="nav(this.id)" class="nav-unselect" href="#">入库</a></li>--> <!-- <li><a id="stockOut" onclick="nav(this.id)" class="nav-unselect" href="#">出库</a></li>--> </ul>