package com.nanometer.smartlab.service; import com.nanometer.smartlab.dao.DangerousEncodeMapper; import com.nanometer.smartlab.entity.DangerousEncode; import com.nanometer.smartlab.entity.DangerousEncodeVo; import com.nanometer.smartlab.entity.SysUser; import com.nanometer.smartlab.util.ExcelUtils; import com.nanometer.smartlab.util.FacesUtils; import com.nanometer.smartlab.util.IDUtils; import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.CellType; 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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; import java.util.*; @Service public class DangerousEncodeServiceImpl implements DangerousEncodeService{ @Resource private DangerousEncodeMapper dangerousEncodeMapper; /* 根据条件查询*/ @Override public List selectAll(DangerousEncode dangerousEncodeFilter, Integer offset, Integer pageSize) { Map params = new HashMap<>(); if (dangerousEncodeFilter != null){ params.put("containerNumber", dangerousEncodeFilter.getContainerNumber()); params.put("reagentCode", dangerousEncodeFilter.getReagentCode()); params.put("reagentName", dangerousEncodeFilter.getReagentName()); params.put("cas", dangerousEncodeFilter.getCas()); } params.put("offset", offset); params.put("pageSize", pageSize); return dangerousEncodeMapper.selectAll(params); } /* 根据条件查询个数*/ @Override public int countAll(DangerousEncode dangerousEncodeFilter) { Map params = new HashMap<>(); if (dangerousEncodeFilter != null){ params.put("containerNumber", dangerousEncodeFilter.getContainerNumber()); params.put("reagentCode", dangerousEncodeFilter.getReagentCode()); params.put("reagentName", dangerousEncodeFilter.getReagentName()); params.put("cas", dangerousEncodeFilter.getCas()); } return dangerousEncodeMapper.countAll(params); } @Override @Transactional public void deleteOne(Long id) { dangerousEncodeMapper.deleteByPrimaryKey(id); } @Override @Transactional public void insertOne(DangerousEncode dangerousEncode) { dangerousEncodeMapper.insert(dangerousEncode); } @Override @Transactional public void updateOne(DangerousEncode dangerousEncode) { dangerousEncodeMapper.updateByPrimaryKeySelective(dangerousEncode); } /* 导入*/ @Override @Transactional public void importInfoByExcel(FileUploadEvent event, SysUser user) throws Exception { 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); int totalRows = sheet.getPhysicalNumberOfRows(); Row row = null; int totalCells = 0; String retmsg = ""; for (int i = 1; i < totalRows; i++) { List valuesList = new ArrayList(); row = sheet.getRow(i); totalCells = row.getPhysicalNumberOfCells(); for (int t = 0; t < totalCells; t++) { String cellInfo = ""; if (row.getCell(t) != null) { //读取excel单元格数据转化之前设置单元格类型为String row.getCell(t).setCellType(CellType.STRING); cellInfo = row.getCell(t).getStringCellValue(); } valuesList.add(cellInfo); } if (valuesList.size() != 12){ break; } //柜号 试剂名称码 试剂名称 CAS号 备注 性状 特性 相忌 状态 灭火器 随机码 编码 DangerousEncode dangerousEncode = new DangerousEncode(); dangerousEncode.setContainerNumber(valuesList.get(0)); dangerousEncode.setReagentCode(valuesList.get(1)); dangerousEncode.setReagentName(valuesList.get(2)); dangerousEncode.setCas(valuesList.get(3)); dangerousEncode.setMemo(valuesList.get(4)); dangerousEncode.setProperty(valuesList.get(5)); dangerousEncode.setFeature(valuesList.get(6)); dangerousEncode.setAvoid(valuesList.get(7)); dangerousEncode.setStatus(valuesList.get(8)); dangerousEncode.setFire(valuesList.get(9)); dangerousEncode.setRandom(valuesList.get(10)); dangerousEncode.setCode(valuesList.get(11)); if (StringUtils.isBlank(dangerousEncode.getReagentCode())){ retmsg += "第"+i+1+"行,试剂名称码不能为空"; continue; }else { List list1 = this.selectByCodeAndName(dangerousEncode.getReagentCode(),null,null,null); if (list1.size() > 0){ retmsg += "第"+i+1+"行,试剂名称码已存在,请更换"; continue; } } if (StringUtils.isBlank(dangerousEncode.getReagentName())){ retmsg += "第"+i+1+"行,试剂名称不能为空"; continue; }else { List list1 = this.selectByCodeAndName(null,dangerousEncode.getReagentName(),null,null); if (list1.size() > 0){ retmsg += "第"+i+1+"行,试剂名称已存在,请更换"; continue; } } if (StringUtils.isBlank(dangerousEncode.getCode())){ retmsg += "第"+i+1+"行,编码不能为空"; continue; }else { List list1 = this.selectByCodeAndName(null,null,null,dangerousEncode.getCode()); if (list1.size() > 0){ retmsg += "第"+i+1+"行,编码已存在,请更换"; continue; } } dangerousEncode.setCount(0); dangerousEncode.setUpdateTime(new Date()); dangerousEncode.setCreator(user.getName()); dangerousEncodeMapper.insert(dangerousEncode); } if (StringUtils.isNotBlank(retmsg)){ FacesUtils.error(retmsg); } } @Override public List exportList(DangerousEncode dangerousEncodeFilter) { Map params = new HashMap<>(); if (dangerousEncodeFilter != null) { params.put("containerNumber", dangerousEncodeFilter.getContainerNumber()); params.put("reagentCode", dangerousEncodeFilter.getReagentCode()); params.put("reagentName", dangerousEncodeFilter.getReagentName()); params.put("cas", dangerousEncodeFilter.getCas()); } return dangerousEncodeMapper.selectExportList(params); } @Override public List selectByCodeAndName(String reagentcode, String reagentname, String cas, String code) { return dangerousEncodeMapper.selectByCodeAndName(reagentcode,reagentname,cas,code); } @Override public List selectByReagentName(String reagentname, String cas) { return dangerousEncodeMapper.selectByReagentName(reagentname, cas); } @Override public DangerousEncode selectByName(String reagentname) { return dangerousEncodeMapper.selectByName(reagentname); } @Override public DangerousEncode selectById(Long id) { return dangerousEncodeMapper.selectById(id); } @Override public void export2Excel(List list) throws Exception { Map map = new LinkedHashMap<>(); map.put("containerNumber", "柜号"); map.put("reagentCode", "试剂名称码"); map.put("reagentName", "试剂名称"); map.put("cas", "CAS号"); map.put("memo", "备注"); map.put("property", "性状"); map.put("feature", "特性"); map.put("avoid", "相忌"); map.put("status", "状态"); map.put("fire", "灭火器"); map.put("random", "随机码"); map.put("code", "编码"); ExcelUtils.export2Excel(list,"危化品编码",map); } }