src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/WaitPakin.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/WaitPakinLog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/CombParam.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/pda/combPro.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -52,6 +52,16 @@ return R.ok(); } /** * 组托-批量 */ @RequestMapping("/comb/auth/batch") @ManagerAuth(memo = "组托-批量") public R combBatch(@RequestBody CombParam combParam){ mobileService.combBatch(combParam, getUserId()); return R.ok(); } /** * 组托 src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -99,7 +99,7 @@ @ApiModelProperty(value= "库位号") @TableField("loc_no") private Date locNo; private String locNo; @ApiModelProperty(value= "状态") private String status; src/main/java/com/zy/asrs/entity/WaitPakinLog.java
@@ -91,7 +91,7 @@ @ApiModelProperty(value= "库位号") @TableField("loc_no") private Date locNo; private String locNo; @ApiModelProperty(value= "状态") private String status; src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -47,6 +47,12 @@ // 物料数量 private Double count; // 通知单号 private String supplier; // 生产单号 private String mnemonic; public String getMatNo() { return matNo; } @@ -63,6 +69,21 @@ this.count = count; } public String getSupplier() { return supplier; } public void setSupplier(String supplier) { this.supplier = supplier; } public String getMnemonic() { return mnemonic; } public void setMnemonic(String mnemonic) { this.mnemonic = mnemonic; } } public String getBarcode() { src/main/java/com/zy/asrs/service/MobileService.java
@@ -10,4 +10,9 @@ */ void comb(CombParam param, Long userId); /** * 组托-批量 * @param param */ void combBatch(CombParam param, Long userId); } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -95,7 +95,7 @@ // 关联通知单组托 for (CombParam.CombMat combMat : param.getCombMats()) { WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>() .eq("supplier", param.getBillNo()) .eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .isNull("zpallet")); if (one == null) { @@ -115,24 +115,25 @@ waitPakin.setAppeTime(new Date()); waitPakin.setModiUser(userId); waitPakin.setModiTime(new Date()); waitPakin.setSupplier(combMat.getSupplier()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存数据失败"); } // 减少通知单上该物料组托数量 if (waitPakin.getAnfme() >= one.getAnfme()) { waitPakinService.delete(new EntityWrapper<WaitPakin>() .eq("supplier", param.getBillNo()) .eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .eq("mnemonic", param.getMnemonic()) .isNull("zpallet")); } else { Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>(); if ("".equals(param.getMnemonic())) { wrapper.eq("supplier", param.getBillNo()) wrapper.eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .isNull("zpallet"); } else { wrapper.eq("supplier", param.getBillNo()) wrapper.eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .eq("mnemonic", param.getMnemonic()) .isNull("zpallet"); @@ -153,4 +154,79 @@ } @Override @Transactional public void combBatch(CombParam param, Long userId) { if (Cools.isEmpty(param.getBarcode())) { throw new CoolException(BaseRes.PARAM); } if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) { throw new CoolException(BaseRes.PARAM); } int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). eq("zpallet", param.getBarcode()).eq("io_status", "N")); if (count > 0) { throw new CoolException("条码数据已存在"); } // 关联通知单组托 for (CombParam.CombMat combMat : param.getCombMats()) { WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>() .eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .isNull("zpallet")); if (one == null) { throw new CoolException("通知单不存在" + combMat.getMatNo() + "数据!"); } if (combMat.getCount() > one.getAnfme()) { throw new CoolException(combMat.getMatNo() + "物料数量不足!"); } MatCode matCode = matCodeService.selectById(combMat.getMatNo()); if (Cools.isEmpty(matCode)) { throw new CoolException("物料数据错误"); } WaitPakin waitPakin = one.clone(); waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setAnfme(combMat.getCount()); // 数量 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(new Date()); waitPakin.setModiUser(userId); waitPakin.setModiTime(new Date()); waitPakin.setSupplier(combMat.getSupplier()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存数据失败"); } // 减少通知单上该物料组托数量 if (waitPakin.getAnfme() >= one.getAnfme()) { waitPakinService.delete(new EntityWrapper<WaitPakin>() .eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .eq("mnemonic", combMat.getMnemonic()) .isNull("zpallet")); } else { Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>(); if ("".equals(param.getMnemonic())) { wrapper.eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .isNull("zpallet"); } else { wrapper.eq("supplier", combMat.getSupplier()) .eq("matnr", combMat.getMatNo()) .eq("mnemonic", combMat.getMnemonic()) .isNull("zpallet"); } WaitPakin pakin = new WaitPakin(); pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme()); pakin.setSupplier(combMat.getSupplier()); pakin.setMatnr(combMat.getMatNo()); pakin.setMnemonic(combMat.getMnemonic()); if (!waitPakinService.update(pakin, wrapper)) { throw new CoolException("更新数据失败"); } } } } } src/main/webapp/views/pda/combPro.html
@@ -166,6 +166,8 @@ } var tableIns; var countLayer; var matData = []; var sourceData = []; layui.use(['table', 'laydate', 'form'], function () { var table = layui.table; var $ = layui.jquery; @@ -179,8 +181,8 @@ limit: 500, cellMinWidth: 50, cols: [[ {field: 'matNo', align: 'center', title: '物料编码',event: 'modify',}, {field: 'mnemonic', align: 'center', title: '生产单号',event: 'modify',}, {field: 'matNo', align: 'center', title: '物料编码', event: 'modify',}, {field: 'mnemonic', align: 'center', title: '生产单号', event: 'modify',}, { align: 'center', field: 'count', @@ -189,7 +191,7 @@ style: 'cursor: pointer;color: blue', width: 50 }, {field: 'matName', align: 'center', title: '物料名称',event: 'modify',} {field: 'matName', align: 'center', title: '物料名称', event: 'modify',} ]], done: function (res, curr, count) { } @@ -228,7 +230,7 @@ } // 添加表格数据 var matData = []; // var matData = []; function addTableData(data) { for (var i = 0; i < data.length; i++) { @@ -241,6 +243,12 @@ } if (toPush) { matData.push(data[i]); sourceData.push({ matNo: data[i].matNo, count: data[i].count, supplier: data[i].supplier, mnemonic: data[i].mnemonic, }); } } tableIns.reload({data: matData}); @@ -263,7 +271,7 @@ return; } // 赋值前清空表格 matData = []; // matData = []; tableIns.reload({data: matData}); $.ajax({ @@ -277,6 +285,10 @@ if (res.code === 200) { if (res.data != null) { addTableData(res.data); // 延迟1秒后清空通知单号 setTimeout(function () { $('#billNo').val(""); }, 500); } } else if (res.code === 403) { top.location.href = baseUrl + "/pda"; @@ -345,6 +357,7 @@ $('#code').val(""); $('#billNo').val(""); matData = []; sourceData = []; tableIns.reload({data: matData}); } @@ -364,31 +377,36 @@ tips("请提取物料", true); return; } var billNo = $('#billNo').val(); var mnemonic = $('#mnemonic').val(); $.ajax({ url: baseUrl + "/mobile/comb/auth", headers: {'token': localStorage.getItem('token')}, data: JSON.stringify({ barcode: barcode, combMats: matData, billNo: billNo, mnemonic: mnemonic, }), contentType: 'application/json;charset=UTF-8', method: 'POST', async: false, success: function (res) { if (res.code === 200) { reset(); tips("组托成功") } else if (res.code === 403) { top.location.href = baseUrl + "/pda"; } else { tips(res.msg, true) for (var i = 0; i < matData.length; i++) { for (var j = 0; j < sourceData.length ; j++) { if (matData[i].matNo == sourceData[j].matNo && matData[i].mnemonic == sourceData[j].mnemonic && matData[i].count == sourceData[j].count) { // 数量提醒 layer.confirm('数量和剩余数量一致,确定继续组托吗?', function(){ $.ajax({ url: baseUrl + "/mobile/comb/auth/batch", headers: {'token': localStorage.getItem('token')}, data: JSON.stringify({ barcode: barcode, combMats: matData, }), contentType: 'application/json;charset=UTF-8', method: 'POST', async: false, success: function (res) { if (res.code === 200) { reset(); tips("组托成功") } else if (res.code === 403) { top.location.href = baseUrl + "/pda"; } else { tips(res.msg, true) } } }) }); } } }) } } /**