From 638ea5df947afa0d14b2f27ae65d85f259b70297 Mon Sep 17 00:00:00 2001 From: gdg <764716047@qq.com> Date: 星期三, 09 十二月 2020 15:30:27 +0800 Subject: [PATCH] 模块:主控设备管理 新增:导入 提出:秦老师 --- src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 106 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java index 5c8d3f2..a1c6c0f 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java @@ -1,15 +1,24 @@ package com.nanometer.smartlab.service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.InputStream; +import java.math.BigDecimal; +import java.util.*; import javax.annotation.Resource; import com.nanometer.smartlab.dao.SysLaboratoryContainerDao; +import com.nanometer.smartlab.entity.BaseMeta; import com.nanometer.smartlab.entity.SysLaboratoryContainer; +import com.nanometer.smartlab.entity.enumtype.ValidFlag; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; @@ -28,7 +37,10 @@ SysControllerDao sysControllerDao; @Resource(name = "sysLaboratoryContainerDao") SysLaboratoryContainerDao sysLaboratoryContainerDao; - + @Resource(name = "sysControllerService") + SysControllerService sysControllerService; + @Resource(name = "baseMetaService") + BaseMetaService baseMetaService; @Override public List<SysController> getAllControllerList() { try { @@ -99,7 +111,96 @@ } } - @Override + @Override + public void uploadFile(FileUploadEvent event) throws Exception{ + List<SysController> sysControllers=sysControllerService.getAllControllerList(); + List<BaseMeta> typeList=baseMetaService.getBaseMetaList("controller_type"); + //主控名字和条码 + HashSet<String> controllerInfo = new HashSet<>(); + if (sysControllers != null && sysControllers.size()>0){ + sysControllers.forEach(sysController -> { + controllerInfo.add(sysController.getControllerCode()); + controllerInfo.add(sysController.getControllerName()); + }); + + } + //主控类型 + Map<String, String> typeMap = new HashMap<>(); + if (typeList != null && typeList.size() > 0) { + typeList.forEach(type->{ + typeMap.put(type.getMetaValue(), type.getId()); + }); + } + + UploadedFile file = event.getFile(); + InputStream is = file.getInputstream(); + boolean isExcel2003 = true; + if (file.getFileName().matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + Workbook wb = null; + if (isExcel2003) { + wb = new HSSFWorkbook(is); + } else { + wb = new XSSFWorkbook(is); + } + Sheet sheet = wb.getSheetAt(0); + List<SysLaboratoryContainer> sysLaboratoryContainers = new ArrayList<>(); + int totalRows = sheet.getPhysicalNumberOfRows(); + Row row = null; + int totalCells = 0; + for (int i = 1; i < totalRows; i++) { + List<String> valuesList=new ArrayList<String>(); + row=sheet.getRow(i); + + totalCells= row.getPhysicalNumberOfCells(); + + for (int t = 0; t < totalCells; t++) { + String cellInfo=""; + if (row.getCell(t) != null) { + + if (row.getCell(t).getCellTypeEnum().toString().equals("NUMERIC")) { + cellInfo = String.valueOf(row.getCell(t).getNumericCellValue()); + if(t==2){ + cellInfo=new BigDecimal(Double.valueOf(row.getCell(t).getNumericCellValue())).toString(); + } + + } else { + cellInfo = row.getCell(t).getStringCellValue(); + } + + } + valuesList.add(cellInfo); + } + //重名判断 + String controlName = valuesList.get(0); + if (controllerInfo.contains(controlName)){ + throw new Exception("设备名称重复:"+controlName); + } + + //条码重复 + String controlCode = valuesList.get(1); + if (controllerInfo.contains(controlCode)){ + throw new Exception("条码重复:"+controlCode); + } + + //设备类型填写判断 + String controlType = valuesList.get(2).trim(); + if (!typeMap.containsKey(controlType)){ + throw new Exception("设备类型填写不符合要求:"+controlType); + } + + SysController sysController = new SysController(); + sysController.setValidFlag(ValidFlag.VALID); + sysController.setControllerCode(controlCode); + sysController.setControllerName(controlName); + sysController.setType(typeMap.get(controlType)); + sysControllerService.insertSysController(sysController); + } + + } + + @Override public SysController getSysController(Integer id) { try { return this.sysControllerDao.getSysController(id); -- Gitblit v1.9.2