| | |
| | | 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; |
| | | |
| | |
| | | SysControllerDao sysControllerDao; |
| | | @Resource(name = "sysLaboratoryContainerDao") |
| | | SysLaboratoryContainerDao sysLaboratoryContainerDao; |
| | | |
| | | @Resource(name = "sysControllerService") |
| | | SysControllerService sysControllerService; |
| | | @Resource(name = "baseMetaService") |
| | | BaseMetaService baseMetaService; |
| | | @Override |
| | | public List<SysController> getAllControllerList() { |
| | | try { |
| | |
| | | } |
| | | } |
| | | |
| | | @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); |