| | |
| | | } |
| | | } |
| | | |
| | | 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 { |
| | |
| | | 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) { |
| | |
| | | |
| | | private String matnr; |
| | | |
| | | private String locNo; |
| | | |
| | | private Double anfme; |
| | | |
| | | private Double safe_qua; |
| | |
| | | |
| | | private String matnr; |
| | | |
| | | private String locNo; |
| | | |
| | | private Double anfme; |
| | | |
| | | private Double total; |
| | |
| | | |
| | | R asrsStockTransfer(AsrsTransferParam param, Long userId); |
| | | |
| | | R asrsStockTransferLocMode(AsrsTransferParam param, Long userId); |
| | | |
| | | R initOrder(InitOrderParam param, Long userId); |
| | | |
| | | R stockCheck(StoCheckParam param, Long userId); |
| | |
| | | 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) { |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | 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: [], |
| | |
| | | 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(); |
| | | } |
| | | }); |
| | |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | 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) |
| | | } |
| | | } |
| | |
| | | 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){ |
| | | |
| | | } |
| | |
| | | <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> |