From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 18 八月 2021 14:27:59 +0800 Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错 --- src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java | 134 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 129 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..4a1b80d 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 @@ -99,6 +110,119 @@ } } + @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, 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); + } + + 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 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(Integer id) { try { -- Gitblit v1.9.2