package com.nanometer.smartlab.service;
|
|
import com.nanometer.smartlab.dao.DangerousEncodeMapper;
|
import com.nanometer.smartlab.entity.DangerousEncode;
|
import com.nanometer.smartlab.entity.SysUser;
|
import com.nanometer.smartlab.util.ExcelUtils;
|
import com.nanometer.smartlab.util.IDUtils;
|
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<DangerousEncode> selectAll(DangerousEncode dangerousEncodeFilter, Integer offset, Integer pageSize) {
|
Map<String, Object> 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<String,Object> 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(String 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 {
|
|
//准备工作
|
List<DangerousEncode> encodeList = selectAll(null, null, null);
|
HashSet<String> set = new HashSet<>();
|
if (encodeList != null && encodeList.size() > 0) {
|
encodeList.forEach(encodeData -> {
|
set.add(encodeData.getReagentCode());
|
});
|
set.add("");
|
}
|
//更新时间
|
Date date = new Date();
|
|
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;
|
for (int i = 1; i < totalRows; i++) {
|
List<String> valuesList = new ArrayList<String>();
|
row = sheet.getRow(i);
|
|
totalCells = row.getPhysicalNumberOfCells();
|
//System.out.println("====="+totalCells);
|
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);
|
}
|
|
//柜号 试剂名称码 试剂名称 CAS号 备注 性状 特性 相忌 状态 灭火器 随机码 编码
|
//如果试剂条码存或者为空就失败
|
if (set.contains(valuesList.get(1).trim())){
|
throw new Exception(i + 1 + "行," + 2 + "列,试剂条码存或者为空");
|
}
|
|
//加入
|
set.add(valuesList.get(1));
|
|
DangerousEncode dangerousEncode = new DangerousEncode();
|
dangerousEncode.setId(IDUtils.uuid());
|
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));
|
dangerousEncode.setCount(0);
|
dangerousEncode.setUpdateTime(date);
|
dangerousEncode.setCreator(user.getId());
|
dangerousEncodeMapper.insert(dangerousEncode);
|
}
|
|
|
}
|
|
@Override
|
public List<Map> exportList(DangerousEncode dangerousEncodeFilter) {
|
Map<String, String> 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 void export2Excel(List<Map> list) throws Exception {
|
Map<String,String> 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);
|
|
}
|
|
|
}
|