src/main/java/com/zy/asrs/controller/AgvMobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/AgvLocDetl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/AgvLocMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/order/order.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/order/order.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -193,6 +193,12 @@ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper); for (AgvLocDetl agvLocDetl : agvLocDetls) { AgvLocMast locNo = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo())); agvLocDetl.setLocSts(locNo.getLocSts()); agvLocDetl.setLocSts$(locNo.getLocSts$()); } return R.ok(agvLocDetls); } src/main/java/com/zy/asrs/controller/OrderController.java
@@ -596,4 +596,51 @@ return R.ok("导入成功"); } /** * excel导入 */ @PostMapping(value = "/order/excel/import2/auth") @ManagerAuth(memo = "销售单Excel导入") @Transactional public R cstmrExcelImport2(MultipartFile file) throws IOException { InputStream inStream = file.getInputStream(); String fileMime = file.getContentType(); int excelVersion = 2007; if ("application/vnd.ms-excel".equals(fileMime)) { excelVersion = 2003; } Workbook book = null; try { if (excelVersion == 2003) { book = new HSSFWorkbook(inStream); } else { // 当 excel 是 2007 时 book = new XSSFWorkbook(inStream); } } catch (Exception e) { log.error("fail", e); return R.error("导入文件格式错误,请使用xls后缀的文件!"); } Sheet sheet = book.getSheetAt(0); int totalRows = sheet.getLastRowNum() + 1; // 总 DataFormatter dataFormatter = new DataFormatter(); List<String> strs = new ArrayList<>(); for (int i = 1; i < totalRows; i++) { Row row = sheet.getRow(i); //单据类型 String docName = dataFormatter.formatCellValue(row.getCell(0)); //单据编号 String uuid = dataFormatter.formatCellValue(row.getCell(1)); //物料号 String matnr = dataFormatter.formatCellValue(row.getCell(2)); Mat mat = matService.selectByMatnr(matnr); if (null == mat) { strs.add(matnr); // throw new CoolException(matnr + "商品编码的商品不存在,请检查!"); } } return R.ok("导入成功").add(strs); } } src/main/java/com/zy/asrs/entity/AgvLocDetl.java
@@ -168,6 +168,20 @@ @TableField(exist = false) private Double stock; /** * 库存数量 */ @ApiModelProperty(value= "可出数量") @TableField(exist = false) private String locSts; /** * 库存数量 */ @ApiModelProperty(value= "可出数量") @TableField(exist = false) private String locSts$; public String getLocNo$(){ LocMastService service = SpringUtils.getBean(LocMastService.class); LocMast locMast = service.selectById(this.locNo); src/main/java/com/zy/asrs/service/AgvLocMastService.java
@@ -26,7 +26,7 @@ List<AgvLocMast> selectLocByLevAndFloor(int lev, int floor); AgvLocMast selectEmptyZpallet(int type); AgvLocMast selectEmptyZpallet(int type, int floor); AgvLocMast selectEmptyZpalletByLocType1(int type); src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
@@ -313,9 +313,9 @@ } @Override public AgvLocMast selectEmptyZpallet(int type) { public AgvLocMast selectEmptyZpallet(int type, int floor) { return this.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_sts","D").eq("loc_type2",type)); return this.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_sts","D").eq("loc_type2",type).eq("floor",floor)); } src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -391,7 +391,7 @@ } //寻找相应类型的空托盘 AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType); AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType,agvBasDevp.getFloor()); if(containerType == 0){ //空板自动出库,根据站点类型选择 agvLocMastService.selectEmptyZpalletByLocType1(agvBasDevp.getLocType1()); src/main/webapp/static/js/order/order.js
@@ -100,6 +100,10 @@ $("#importExcel").trigger("click"); }); $("#orderCheckBtn").click(function () { $("#importExcel2").trigger("click"); }); // 工具条点击事件 table.on('tool(order)', function (obj) { var data = obj.data; @@ -629,3 +633,47 @@ alert(res.msg); // layer.msg(res.msg, {icon: 2}); } function upload2(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 + "/order/excel/import2/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/order/order.html
@@ -86,7 +86,11 @@ <button id="importOrder" class="layui-btn icon-btn btn-add"> <i class="layui-icon layui-icon-upload"></i> 导入单据 </button> <button id="orderCheckBtn" class="layui-btn icon-btn btn-add"> <i class="layui-icon"></i>添加 </button> <input style="display:none" id="importExcel" type="file" onchange="upload(this)" > <input style="display:none" id="importExcel2" type="file" onchange="upload2(this)" > </div> </div> </div>