From 9f303916b94feec7ceafdc73caaaae048cdc3e06 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Tue, 20 Feb 2024 13:29:49 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E8=B6=85=E6=9C=9F=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basedata/st/rest/StructivtController.java | 11 +- .../basedata/st/service/StructivtService.java | 4 + .../st/service/impl/StructivtServiceImpl.java | 36 +++++ .../wms/basedata/st/ivt/UploadDialog.vue | 116 +++++++++++++++ .../src/views/wms/basedata/st/ivt/index.vue | 133 ++++++++++++------ .../views/wms/basedata/st/ivt/structivt.js | 10 +- 6 files changed, 268 insertions(+), 42 deletions(-) create mode 100644 lms/nladmin-ui/src/views/wms/basedata/st/ivt/UploadDialog.vue diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java index 27aa68b76..bd0b2b469 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java @@ -1,6 +1,7 @@ package org.nl.wms.basedata.st.rest; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,7 +13,9 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; @@ -98,10 +101,16 @@ public class StructivtController { @PostMapping("/save") @Log("保存") - public ResponseEntity save(@RequestBody JSONObject whereJson) { structivtService.save(whereJson); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/importExcel") + @SaIgnore + public ResponseEntity importExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) { + structivtService.importExcel(file, request); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java index 2f0f6131d..15db8d5f4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructivtService.java @@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.wms.basedata.st.service.dto.StructivtDto; import org.springframework.data.domain.Pageable; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @@ -81,4 +83,6 @@ public interface StructivtService { void download(Map map, HttpServletResponse response, String[] product_area, String[] ivt_flag) throws IOException; void save(JSONObject whereJson); + + void importExcel(MultipartFile file, HttpServletRequest request); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java index 1b46a3387..a37c84e7a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java @@ -6,6 +6,9 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -23,9 +26,12 @@ import org.nl.wms.basedata.st.service.dto.StructivtDto; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; import java.util.*; /** @@ -329,4 +335,34 @@ public class StructivtServiceImpl implements StructivtService { WQLObject.getWQLObject("st_ivt_structivt").update(jsonObject, "stockrecord_id = '" + whereJson.getString("stockrecord_id") + "'"); } + @Override + public void importExcel(MultipartFile file, HttpServletRequest request) { + // 1.获取上传文件输入流 + InputStream inputStream = null; + try { + inputStream = file.getInputStream(); + } catch (Exception e) { + e.printStackTrace(); + } + + ExcelReader excelReader = ExcelUtil.getReader(inputStream); + List> read = excelReader.read(1, excelReader.getRowCount()); + // 循环获取的数据 + for (int i = 0; i < read.size(); i++) { + List list = read.get(i); + String container_name = list.get(0).toString(); + String remark = list.get(1).toString(); + + if (StrUtil.isEmpty(container_name) || StrUtil.isEmpty(remark)) { + continue; + } + + JSONObject ivt_jo = WQLObject.getWQLObject("st_ivt_structivt").query("pcsn = '" + container_name + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(ivt_jo)) { + continue; + } + ivt_jo.put("remark", remark); + WQLObject.getWQLObject("st_ivt_structivt").update(ivt_jo); + } + } } diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/UploadDialog.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/UploadDialog.vue new file mode 100644 index 000000000..da04b4678 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/UploadDialog.vue @@ -0,0 +1,116 @@ + + + + diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue index 52b590558..4f3fb44d9 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue @@ -155,7 +155,7 @@ /> - + @@ -170,39 +170,63 @@ > 导出Excel + + 超期信息导入 + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -240,17 +267,37 @@ import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' +import UploadDialog from '@/views/wms/basedata/st/ivt/UploadDialog' import { download } from '@/api/data' import { downloadFile } from '@/utils' -const defaultForm = { stockrecord_id: null, cascader: null, struct_id: null, struct_code: null, struct_name: null, workprocedure_id: null, material_id: null, material_code: null, quality_scode: null, pcsn: null, canuse_qty: null, frozen_qty: null, ivt_qty: null, warehousing_qty: null, qty_unit_id: null, instorage_time: null, sale_id: null } +const defaultForm = { + stockrecord_id: null, + cascader: null, + struct_id: null, + struct_code: null, + struct_name: null, + workprocedure_id: null, + material_id: null, + material_code: null, + quality_scode: null, + pcsn: null, + canuse_qty: null, + frozen_qty: null, + ivt_qty: null, + warehousing_qty: null, + qty_unit_id: null, + instorage_time: null, + sale_id: null +} export default { name: 'Structivt', dicts: ['ST_QUALITY_SCODE', 'product_area', 'IS_OR_NOT'], - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, crudOperation, rrOperation, udOperation, UploadDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { - return CRUD({ title: '库存管理', url: 'api/structivt', idField: 'stockrecord_id', sort: 'stockrecord_id,desc', + return CRUD({ + title: '库存管理', url: 'api/structivt', idField: 'stockrecord_id', sort: 'stockrecord_id,desc', optShow: { add: false, edit: false, @@ -258,11 +305,13 @@ export default { download: false, reset: true }, - crudMethod: { ...crudStructivt }}) + crudMethod: { ...crudStructivt } + }) }, data() { return { sects: [], + viewShow: false, ivtStatusList: [ { 'value': 'canuse_qty', 'label': '可用数' }, { 'value': 'warehousing_qty', 'label': '待入数' }, @@ -278,10 +327,8 @@ export default { { 'value': '2', 'label': '生产质量原因' }, { 'value': '3', 'label': '市场原因' } ], - permission: { - }, - rules: { - } + permission: {}, + rules: {} } }, created() { @@ -324,6 +371,9 @@ export default { } this.crud.toQuery() }, + querytable() { + this.crud.toQuery() + }, downdtl() { if (this.currentRow !== null) { crud.downloadLoading = true @@ -335,6 +385,9 @@ export default { }) } }, + Import() { + this.viewShow = true + }, save(row) { crudStructivt.save(row).then(res => { this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/structivt.js b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/structivt.js index 762aeb53d..52927a92d 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/structivt.js +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/structivt.js @@ -54,4 +54,12 @@ export function save(data) { }) } -export default { add, edit, del, getStruct, getStructById, getUnits, save } +export function excelImport(data) { + return request({ + url: 'api/structivt/importExcel', + method: 'post', + data + }) +} + +export default { add, edit, del, getStruct, getStructById, getUnits, save, excelImport }