diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java index 330cfedf..4041c833 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/rest/DevicerepairitemsController.java @@ -7,12 +7,16 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.common.utils.RedissonUtils; import org.nl.wms.masterdata_manage.em.service.DevicerepairitemsService; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.Map; /** @@ -54,4 +58,14 @@ public class DevicerepairitemsController { devicerepairitemsService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + /** + * 导入bom数据 + */ + @Log("导入维修项") + @PostMapping("/excelImport") + public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) { + RedissonUtils.lock(() -> devicerepairitemsService.excelImport(file, request), "导入设备档案", null); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java index 06e776b3..e92d7fff 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/DevicerepairitemsService.java @@ -4,7 +4,9 @@ package org.nl.wms.masterdata_manage.em.service; import com.alibaba.fastjson.JSONObject; import org.nl.wms.masterdata_manage.em.service.dto.DevicerepairitemsDto; import org.springframework.data.domain.Pageable; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -69,4 +71,11 @@ public interface DevicerepairitemsService { * @param ids / */ void deleteAll(Long[] ids); + + /** + * 导入维修项目 + * @param file + * @param request + */ + void excelImport(MultipartFile file, HttpServletRequest request); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java index eef4dbba..0f05917b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/service/impl/DevicerepairitemsServiceImpl.java @@ -7,25 +7,34 @@ 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.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.masterdata_manage.em.service.DevicerepairitemsService; import org.nl.wms.masterdata_manage.em.service.dto.DevicerepairitemsDto; import org.nl.wms.masterdata_manage.bfmaster.service.ClassstandardService; +import org.nl.wms.system_manage.service.tableData.ColumnInfoService; 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 java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author Liuxy @@ -157,4 +166,55 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { } } + + @Override + @Transactional + public void excelImport(MultipartFile file, HttpServletRequest request) { + try { + // 调用用 hutool 方法读取数据 调用第一个sheet白班数据 + ExcelReader excelReader = ExcelUtil.getReader(file.getInputStream(), 0); + // 从第1行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列 + ColumnInfoService columnInfoService = SpringContextHolder.getBean(ColumnInfoService.class); + Map tableColumn = columnInfoService.TableColumn2("em_bi_devicerepairitems"); + List> read = excelReader.read(0, excelReader.getRowCount()); + Map IndexValue = new HashMap<>(); + for (int i = 0; i < read.get(0).size(); i++) { + String label = String.valueOf(read.get(0).get(i)); + String value = tableColumn.get(label); + if (value != null) { + IndexValue.put(i, value); + } + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + JSONArray array = new JSONArray(); + List ids = new ArrayList<>(); + for (int i = 1; i < read.size(); i++) { + List list = read.get(i); + JSONObject item = new JSONObject(); + for (int i1 = 0; i1 < list.size(); i1++) { + String s = IndexValue.get(i1); + if (s != null) { + item.put(s, list.get(i1)); + + } + } + item.put("create_id", currentUserId); + item.put("create_name", currentUsername); + item.put("create_time", now); + array.add(item); + ids.add(item.getString("repair_item_id")); + } + System.out.println(array.size()); + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicerepairitems"); // 工艺路线主表 + mstTab.delete("repair_item_id in " + "('" + ids.stream().collect(Collectors.joining("','")) + "')"); + for (Object o : array) { + mstTab.insert((JSONObject) o); + } + } catch (Exception ex) { + throw new BadRequestException(ex.getMessage()); + } + } + } diff --git a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue index 0cc48bdb..96c6898d 100644 --- a/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue +++ b/mes/qd/src/views/wms/analysis_manage/qlmanage/index.vue @@ -36,15 +36,6 @@ :default-time="['00:00:00','23:59:59']" /> - - - + + + 指定 + + {{ item-1 }} + + + diff --git a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue new file mode 100644 index 00000000..c1b32f7f --- /dev/null +++ b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/UploadDialog.vue @@ -0,0 +1,121 @@ + + + + diff --git a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js index 9666d5d3..1e98f0f8 100644 --- a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js +++ b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/devicerepairitems.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function excelImport(data) { + return request({ + url: 'api/devicerepairitems/excelImport', + method: 'post', + data + }) +} + +export default { add, edit, del, excelImport } diff --git a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue index 49377fb3..067588d2 100644 --- a/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue +++ b/mes/qd/src/views/wms/masterdata_manage/em/devicerepairitems/index.vue @@ -42,7 +42,18 @@ - + + + 导入 + + @@ -117,10 +128,12 @@ +