From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 131 insertions(+), 7 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..ab1463e 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java @@ -1,15 +1,25 @@ 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 com.nanometer.smartlab.util.ExcelUtils; 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 +38,8 @@ SysControllerDao sysControllerDao; @Resource(name = "sysLaboratoryContainerDao") SysLaboratoryContainerDao sysLaboratoryContainerDao; - + @Resource(name = "baseMetaService") + BaseMetaService baseMetaService; @Override public List<SysController> getAllControllerList() { try { @@ -49,7 +60,7 @@ throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e); } - + } @Override @@ -89,7 +100,7 @@ } @Override - public int deleteSysControllers(List<Integer> ids) { + public int deleteSysControllers(List<Long> ids) { try { return this.sysControllerDao.deleteSysControllers(ids); } catch (DataAccessException e) { @@ -99,8 +110,121 @@ } } + @Override + public void uploadFile(FileUploadEvent event) throws Exception{ + List<SysController> sysControllers=this.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, Long> 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); + } + + if (valuesList.size() != 3){ + break; + } + + //重名判断 + 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)); + this.insertSysController(sysController); + controllerInfo.add(controlName); + controllerInfo.add(controlCode); + } + + } + @Override - public SysController getSysController(Integer id) { + public List<Map> exportExcelList(String name, String code) { + Map<String, String> params = new HashMap<>(); + params.put("name", name); + params.put("code", code); + return sysControllerDao.exportExcelList(params); + } + + @Override + public void export2Excel(List<Map> list) throws Exception { + Map<String, String> map = new LinkedHashMap<>(); + map.put("name", "设备名称"); + map.put("code", "设备代码"); + map.put("type", "设备类型"); + ExcelUtils.export2Excel(list,"主控设备信息",map); + } + + @Override + public SysController getSysController(Long id) { try { return this.sysControllerDao.getSysController(id); } catch (DataAccessException e) { -- Gitblit v1.9.2