src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/WEB-INF/spring-menu.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/resources/template/危化品编码导入模板.xlsx | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/sys_dangerous_encode.xhtml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java
对比新文件 @@ -0,0 +1,196 @@ package com.nanometer.smartlab.controller; import com.nanometer.smartlab.entity.DangerousEncode; import com.nanometer.smartlab.entity.dto.ContainerStatusMngDto; import com.nanometer.smartlab.service.DangerousEncodeService; import com.nanometer.smartlab.util.Constants; import com.nanometer.smartlab.util.FacesUtils; import com.nanometer.smartlab.util.IDUtils; import org.apache.log4j.Logger; import org.primefaces.context.RequestContext; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; import org.springframework.context.annotation.Scope; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; @Controller @Scope("session") public class DangerousEncodeController extends BaseController{ private static Logger logger = Logger.getLogger(DangerousEncodeController.class); @Resource private DangerousEncodeService dangerousEncodeService; private LazyDataModel<DangerousEncode> dataModel; private boolean isSearch; private DangerousEncode dangerousEncode; private DangerousEncode selectOne; private DangerousEncode dangerousEncodeFilter = new DangerousEncode(); public LazyDataModel<DangerousEncode> getDataModel() { if (this.dataModel == null) { this.dataModel = new LazyDataModel<DangerousEncode>() { public List<DangerousEncode> load (int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { List<DangerousEncode> list = null; try { int pageCount = dangerousEncodeService.countAll(dangerousEncodeFilter); this.setRowCount(pageCount); if (pageCount > 0) list = dangerousEncodeService.selectAll(dangerousEncodeFilter, isSearch?0:first, pageSize); } catch (Exception e) { logger.error("error occured.", e); } return list; } @Override public DangerousEncode getRowData(String rowKey) { Iterator<DangerousEncode> iterator = this.iterator(); DangerousEncode su = null; while (iterator.hasNext()) { su = iterator.next(); if (rowKey.equals(su.getId())) { return su; } } return null; } }; } return dataModel; } public void onNewBtnClick(){ this.dangerousEncode = new DangerousEncode(); } //保存 public void onSaveBtnClick(){ try { //插入 if (dangerousEncode.getId() == null) { //设置 id,创建者和更新时间 dangerousEncode.setId(IDUtils.uuid()); dangerousEncode.setCreator(getUser().getId()); dangerousEncode.setUpdateTime(new Date()); //插入 dangerousEncodeService.insertOne(dangerousEncode); } //更新 else{ dangerousEncode.setUpdateTime(new Date()); dangerousEncodeService.updateOne(dangerousEncode); } FacesUtils.info("操作成功"); RequestContext.getCurrentInstance().execute("PF('dialog').hide()"); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn("操作失败"); } } //编辑 public void onEditBtnClick(){ if (this.selectOne == null) { FacesUtils.warn("请选择数据"); } else{ this.dangerousEncode = this.selectOne; RequestContext.getCurrentInstance().execute("PF('dialog').show()"); } } //删除 public void onDeleteBtnClick(){ if (this.selectOne == null) { FacesUtils.warn("请选择数据"); } else{ try { dangerousEncodeService.deleteOne(this.selectOne.getId()); FacesUtils.info("删除成功"); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn("操作失败"); } } } //导入 public void importByExcel(FileUploadEvent event){ try { dangerousEncodeService.importInfoByExcel(event,getUser()); FacesUtils.info("导入完成"); } catch(Exception e){ e.printStackTrace(); FacesUtils.warn(e.getMessage()); } } //导出 public void export2Excel(){ List<Map> list = dangerousEncodeService.exportList(dangerousEncodeFilter); try{ dangerousEncodeService.export2Excel(list); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn("导出失败"); } } public void modelChange(){ this.isSearch = true; } public DangerousEncode getDangerousEncode() { return dangerousEncode; } public void setDangerousEncode(DangerousEncode dangerousEncode) { this.dangerousEncode = dangerousEncode; } public DangerousEncode getSelectOne() { return selectOne; } public void setSelectOne(DangerousEncode selectOne) { this.selectOne = selectOne; } public DangerousEncode getDangerousEncodeFilter() { return dangerousEncodeFilter; } public void setDangerousEncodeFilter(DangerousEncode dangerousEncodeFilter) { this.dangerousEncodeFilter = dangerousEncodeFilter; } } src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java
对比新文件 @@ -0,0 +1,26 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.DangerousEncode; import java.util.List; import java.util.Map; public interface DangerousEncodeMapper { int deleteByPrimaryKey(String id); int insert(DangerousEncode record); int insertSelective(DangerousEncode record); DangerousEncode selectByPrimaryKey(String id); int updateByPrimaryKeySelective(DangerousEncode record); int updateByPrimaryKey(DangerousEncode record); List<DangerousEncode> selectAll(Map params); int countAll(Map params); List<Map> selectExportList(Map params); } src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml
对比新文件 @@ -0,0 +1,293 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.nanometer.smartlab.dao.DangerousEncodeMapper"> <resultMap id="BaseResultMap" type="com.nanometer.smartlab.entity.DangerousEncode"> <!-- --> <id column="id" jdbcType="VARCHAR" property="id" /> <result column="container_number" jdbcType="VARCHAR" property="containerNumber" /> <result column="reagent_code" jdbcType="VARCHAR" property="reagentCode" /> <result column="reagent_name" jdbcType="VARCHAR" property="reagentName" /> <result column="cas" jdbcType="VARCHAR" property="cas" /> <result column="memo" jdbcType="VARCHAR" property="memo" /> <result column="property" jdbcType="VARCHAR" property="property" /> <result column="feature" jdbcType="VARCHAR" property="feature" /> <result column="avoid" jdbcType="VARCHAR" property="avoid" /> <result column="status" jdbcType="VARCHAR" property="status" /> <result column="fire" jdbcType="VARCHAR" property="fire" /> <result column="random" jdbcType="VARCHAR" property="random" /> <result column="code" jdbcType="VARCHAR" property="code" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="creator" jdbcType="VARCHAR" property="creator" /> <result column="count" jdbcType="INTEGER" property="count" /> </resultMap> <sql id="Base_Column_List"> <!-- --> id, container_number, reagent_code, reagent_name, cas, memo, property, feature, avoid, status, fire, random, code, update_time, creator, count </sql> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> <!-- --> select <include refid="Base_Column_List" /> from sys_dangerous_encode where id = #{id,jdbcType=VARCHAR} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.String"> <!-- --> delete from sys_dangerous_encode where id = #{id,jdbcType=VARCHAR} </delete> <insert id="insert" parameterType="com.nanometer.smartlab.entity.DangerousEncode"> <!-- --> insert into sys_dangerous_encode (id, container_number, reagent_code, reagent_name, cas, memo, property, feature, avoid, status, fire, random, code, update_time, creator, count) values (#{id,jdbcType=VARCHAR}, #{containerNumber,jdbcType=VARCHAR}, #{reagentCode,jdbcType=VARCHAR}, #{reagentName,jdbcType=VARCHAR}, #{cas,jdbcType=VARCHAR}, #{memo,jdbcType=VARCHAR}, #{property,jdbcType=VARCHAR}, #{feature,jdbcType=VARCHAR}, #{avoid,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR}, #{fire,jdbcType=VARCHAR}, #{random,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{creator,jdbcType=VARCHAR}, #{count,jdbcType=INTEGER}) </insert> <insert id="insertSelective" parameterType="com.nanometer.smartlab.entity.DangerousEncode"> <!-- --> insert into sys_dangerous_encode <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null"> id, </if> <if test="containerNumber != null"> container_number, </if> <if test="reagentCode != null"> reagent_code, </if> <if test="reagentName != null"> reagent_name, </if> <if test="cas != null"> cas, </if> <if test="memo != null"> memo, </if> <if test="property != null"> property, </if> <if test="feature != null"> feature, </if> <if test="avoid != null"> avoid, </if> <if test="status != null"> status, </if> <if test="fire != null"> fire, </if> <if test="random != null"> random, </if> <if test="code != null"> code, </if> <if test="updateTime != null"> update_time, </if> <if test="creator != null"> creator, </if> <if test="count != null"> count, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> #{id,jdbcType=VARCHAR}, </if> <if test="containerNumber != null"> #{containerNumber,jdbcType=VARCHAR}, </if> <if test="reagentCode != null"> #{reagentCode,jdbcType=VARCHAR}, </if> <if test="reagentName != null"> #{reagentName,jdbcType=VARCHAR}, </if> <if test="cas != null"> #{cas,jdbcType=VARCHAR}, </if> <if test="memo != null"> #{memo,jdbcType=VARCHAR}, </if> <if test="property != null"> #{property,jdbcType=VARCHAR}, </if> <if test="feature != null"> #{feature,jdbcType=VARCHAR}, </if> <if test="avoid != null"> #{avoid,jdbcType=VARCHAR}, </if> <if test="status != null"> #{status,jdbcType=VARCHAR}, </if> <if test="fire != null"> #{fire,jdbcType=VARCHAR}, </if> <if test="random != null"> #{random,jdbcType=VARCHAR}, </if> <if test="code != null"> #{code,jdbcType=VARCHAR}, </if> <if test="updateTime != null"> #{updateTime,jdbcType=TIMESTAMP}, </if> <if test="creator != null"> #{creator,jdbcType=VARCHAR}, </if> <if test="count != null"> #{count,jdbcType=INTEGER}, </if> </trim> </insert> <update id="updateByPrimaryKeySelective" parameterType="com.nanometer.smartlab.entity.DangerousEncode"> <!-- --> update sys_dangerous_encode <set> <if test="containerNumber != null"> container_number = #{containerNumber,jdbcType=VARCHAR}, </if> <if test="reagentCode != null"> reagent_code = #{reagentCode,jdbcType=VARCHAR}, </if> <if test="reagentName != null"> reagent_name = #{reagentName,jdbcType=VARCHAR}, </if> <if test="cas != null"> cas = #{cas,jdbcType=VARCHAR}, </if> <if test="memo != null"> memo = #{memo,jdbcType=VARCHAR}, </if> <if test="property != null"> property = #{property,jdbcType=VARCHAR}, </if> <if test="feature != null"> feature = #{feature,jdbcType=VARCHAR}, </if> <if test="avoid != null"> avoid = #{avoid,jdbcType=VARCHAR}, </if> <if test="status != null"> status = #{status,jdbcType=VARCHAR}, </if> <if test="fire != null"> fire = #{fire,jdbcType=VARCHAR}, </if> <if test="random != null"> random = #{random,jdbcType=VARCHAR}, </if> <if test="code != null"> code = #{code,jdbcType=VARCHAR}, </if> <if test="updateTime != null"> update_time = #{updateTime,jdbcType=TIMESTAMP}, </if> <if test="creator != null"> creator = #{creator,jdbcType=VARCHAR}, </if> <if test="count != null"> count = #{count,jdbcType=INTEGER}, </if> </set> where id = #{id,jdbcType=VARCHAR} </update> <update id="updateByPrimaryKey" parameterType="com.nanometer.smartlab.entity.DangerousEncode"> <!-- --> update sys_dangerous_encode set container_number = #{containerNumber,jdbcType=VARCHAR}, reagent_code = #{reagentCode,jdbcType=VARCHAR}, reagent_name = #{reagentName,jdbcType=VARCHAR}, cas = #{cas,jdbcType=VARCHAR}, memo = #{memo,jdbcType=VARCHAR}, property = #{property,jdbcType=VARCHAR}, feature = #{feature,jdbcType=VARCHAR}, avoid = #{avoid,jdbcType=VARCHAR}, status = #{status,jdbcType=VARCHAR}, fire = #{fire,jdbcType=VARCHAR}, random = #{random,jdbcType=VARCHAR}, code = #{code,jdbcType=VARCHAR}, update_time = #{updateTime,jdbcType=TIMESTAMP}, creator = #{creator,jdbcType=VARCHAR}, count = #{count,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR} </update> <select id="selectAll" parameterType="java.util.Map" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from sys_dangerous_encode <where> <if test="reagentName !=null and reagentName != ''"> reagent_name like concat("%",#{reagentName},"%") </if> <if test="cas !=null and cas != ''"> cas like concat("%",#{cas},"%") </if> <if test="reagentCode!=null and reagentCode != ''"> reagent_code like concat("%",#{reagentCode},"%") </if> <if test="containerNumber !=null and containerNumber != ''"> container_number like concat("%",#{containerNumber},"%") </if> </where> order by update_time </select> <select id="countAll" parameterType="java.util.Map" resultType="java.lang.Integer"> select count(1) from sys_dangerous_encode <where> <if test="reagentName !=null and reagentName != ''"> reagent_name like concat("%",#{reagentName},"%") </if> <if test="cas !=null and cas != ''"> cas like concat("%",#{cas},"%") </if> <if test="reagentCode!=null and reagentCode != ''"> reagent_code like concat("%",#{reagentCode},"%") </if> <if test="containerNumber !=null and containerNumber != ''"> container_number like concat("%",#{containerNumber},"%") </if> </where> </select> <select id="selectExportList" parameterType="java.util.Map" resultType="java.util.Map"> select container_number containerNumber, reagent_code reagentCode, reagent_name reagentName, cas, memo, property, feature, avoid, status, fire, random, code, update_time, creator, count from sys_dangerous_encode <where> <if test="reagentName !=null and reagentName != ''"> reagent_name like concat("%",#{reagentName},"%") </if> <if test="cas !=null and cas != ''"> cas like concat("%",#{cas},"%") </if> <if test="reagentCode!=null and reagentCode != ''"> reagent_code like concat("%",#{reagentCode},"%") </if> <if test="containerNumber !=null and containerNumber != ''"> container_number like concat("%",#{containerNumber},"%") </if> </where> </select> </mapper> src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java
对比新文件 @@ -0,0 +1,214 @@ package com.nanometer.smartlab.entity; import java.util.Date; public class DangerousEncode { /** id id **/ private String id; /** 柜码 container_number **/ private String containerNumber; /** 试剂名称码 reagent_code **/ private String reagentCode; /** 试剂名称 reagent_name **/ private String reagentName; /** CAS号 cas **/ private String cas; /** 备注 memo **/ private String memo; /** 性状 property **/ private String property; /** 特性 feature **/ private String feature; /** 相忌 avoid **/ private String avoid; /** 状态 status **/ private String status; /** 灭火器 fire **/ private String fire; /** 随机码 random **/ private String random; /** 编码 code **/ private String code; /** 更新时间 update_time **/ private Date updateTime; /** 创建用户 creator **/ private String creator; /** 使用次数 count **/ private Integer count; /** id id **/ public String getId() { return id; } /** id id **/ public void setId(String id) { this.id = id == null ? null : id.trim(); } /** 柜码 container_number **/ public String getContainerNumber() { return containerNumber; } /** 柜码 container_number **/ public void setContainerNumber(String containerNumber) { this.containerNumber = containerNumber == null ? null : containerNumber.trim(); } /** 试剂名称码 reagent_code **/ public String getReagentCode() { return reagentCode; } /** 试剂名称码 reagent_code **/ public void setReagentCode(String reagentCode) { this.reagentCode = reagentCode == null ? null : reagentCode.trim(); } /** 试剂名称 reagent_name **/ public String getReagentName() { return reagentName; } /** 试剂名称 reagent_name **/ public void setReagentName(String reagentName) { this.reagentName = reagentName == null ? null : reagentName.trim(); } /** CAS号 cas **/ public String getCas() { return cas; } /** CAS号 cas **/ public void setCas(String cas) { this.cas = cas == null ? null : cas.trim(); } /** 备注 memo **/ public String getMemo() { return memo; } /** 备注 memo **/ public void setMemo(String memo) { this.memo = memo == null ? null : memo.trim(); } /** 性状 property **/ public String getProperty() { return property; } /** 性状 property **/ public void setProperty(String property) { this.property = property == null ? null : property.trim(); } /** 特性 feature **/ public String getFeature() { return feature; } /** 特性 feature **/ public void setFeature(String feature) { this.feature = feature == null ? null : feature.trim(); } /** 相忌 avoid **/ public String getAvoid() { return avoid; } /** 相忌 avoid **/ public void setAvoid(String avoid) { this.avoid = avoid == null ? null : avoid.trim(); } /** 状态 status **/ public String getStatus() { return status; } /** 状态 status **/ public void setStatus(String status) { this.status = status == null ? null : status.trim(); } /** 灭火器 fire **/ public String getFire() { return fire; } /** 灭火器 fire **/ public void setFire(String fire) { this.fire = fire == null ? null : fire.trim(); } /** 随机码 random **/ public String getRandom() { return random; } /** 随机码 random **/ public void setRandom(String random) { this.random = random == null ? null : random.trim(); } /** 编码 code **/ public String getCode() { return code; } /** 编码 code **/ public void setCode(String code) { this.code = code == null ? null : code.trim(); } /** 更新时间 update_time **/ public Date getUpdateTime() { return updateTime; } /** 更新时间 update_time **/ public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } /** 创建用户 creator **/ public String getCreator() { return creator; } /** 创建用户 creator **/ public void setCreator(String creator) { this.creator = creator == null ? null : creator.trim(); } /** 使用次数 count **/ public Integer getCount() { return count; } /** 使用次数 count **/ public void setCount(Integer count) { this.count = count; } } src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java
对比新文件 @@ -0,0 +1,27 @@ package com.nanometer.smartlab.service; import com.nanometer.smartlab.entity.DangerousEncode; import com.nanometer.smartlab.entity.SysUser; import org.primefaces.event.FileUploadEvent; import java.util.List; import java.util.Map; public interface DangerousEncodeService { List<DangerousEncode> selectAll(DangerousEncode dangerousEncodeFilter, Integer offset, Integer pageSize); int countAll(DangerousEncode dangerousEncodeFilter); void deleteOne(String id); void insertOne(DangerousEncode dangerousEncode); void updateOne(DangerousEncode dangerousEncode); void importInfoByExcel(FileUploadEvent event, SysUser user) throws Exception; void export2Excel(List<Map> list) throws Exception; List<Map> exportList(DangerousEncode dangerousEncodeFilter); } src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java
对比新文件 @@ -0,0 +1,189 @@ 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); } } src/main/webapp/WEB-INF/spring-menu.xml
@@ -211,6 +211,12 @@ <property name="page" value="sys_controller_mng"></property> <property name="privilegeCode" value="sys_controller_mng"></property> </bean> <bean class="com.nanometer.smartlab.model.MenuModel"> <property name="id" value="sys_dangerous_encode"></property> <property name="title" value="危化品编码"></property> <property name="page" value="sys_dangerous_encode"></property> <property name="privilegeCode" value="sys_dangerous_encode"></property> </bean> </list> </property> </bean> src/main/webapp/resources/template/危化品编码导入模板.xlsxBinary files differ
src/main/webapp/sys_dangerous_encode.xhtml
对比新文件 @@ -0,0 +1,238 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core"> <ui:composition> <h:form id="dangerousEncodeForm"> <p:panel styleClass="center-header"> <p:outputLabel styleClass="title" value="危化品编码"/> <p:panelGrid styleClass="filter" columns="9"> <p:outputLabel value="试剂名称:"/> <p:inputText value="#{dangerousEncodeController.dangerousEncodeFilter.reagentName}"/> <p:outputLabel value="CAS号:"/> <p:inputText value="#{dangerousEncodeController.dangerousEncodeFilter.cas}"/> <p:outputLabel value="试剂名称码:"/> <p:inputText value="#{dangerousEncodeController.dangerousEncodeFilter.reagentCode}"/> <p:outputLabel value="柜码:"/> <p:inputText value="#{dangerousEncodeController.dangerousEncodeFilter.containerNumber}"/> <p:commandLink styleClass="search" process="@form" update="@form" actionListener="#{dangerousEncodeController.modelChange}"/> </p:panelGrid> </p:panel> <p:panel styleClass="center-body"> <p:panelGrid columns="6" styleClass="btn"> <p:commandButton value="新建" styleClass="new-btn" process="@this" actionListener="#{dangerousEncodeController.onNewBtnClick}" oncomplete="PF('dialog').show();" update=":dialog,:dialogForm"/> <p:commandButton value="修改" styleClass="edit-btn" process="@form" actionListener="#{dangerousEncodeController.onEditBtnClick}" update=":dialog,:dialogForm"/> <p:commandButton value="删除" styleClass="del-btn" process="@form" actionListener="#{dangerousEncodeController.onDeleteBtnClick}" update="@form"> <p:confirm header="确认" message="确认操作?"/> </p:commandButton> <p:commandButton value="导入" styleClass="import-btn" onclick="importSupplier()"/> <p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="#{dangerousEncodeController.export2Excel}" /> <a href="resources/template/危化品编码导入模板.xlsx" style="display: inline-block;"> <img src="resources/images/xlsx.png" width="30px;" alt="危化品编码导入模板"/> </a> </p:panelGrid> <script type="text/javascript"> function importSupplier(){ $("#dangerousEncodeForm\\:importInfo_input").click(); } </script> <div style="display: none" id='importDv'> <p:fileUpload fileUploadListener="#{dangerousEncodeController.importByExcel}" dragDropSupport="false" id="importInfo" label="导入" update="@form" auto="true" sizeLimit="5000000" mode="advanced"/> </div> <p:dataTable id="dangerousEncodeInfoMngDataTable" styleClass="data-table" paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom" lazy="true" value="#{dangerousEncodeController.dataModel}" var="row" rowKey="#{row.id}" emptyMessage="无数据" rows="20" selection="#{dangerousEncodeController.selectOne}" selectionMode="single" pageLinks="5"> <p:column headerText="试剂名称码"> <h:outputText value="#{row.reagentCode}"/> </p:column> <p:column headerText="试剂名称"> <h:outputText value="#{row.reagentName}"/> </p:column> <p:column headerText="柜码"> <h:outputText value="#{row.containerNumber}"/> </p:column> <p:column headerText="CAS号"> <h:outputText value="#{row.cas}"/> </p:column> <p:column headerText="备注"> <h:outputText value="#{row.memo}"/> </p:column> <p:column headerText="性状"> <h:outputText value="#{row.property}"/> </p:column> <p:column headerText="特性"> <h:outputText value="#{row.feature}"/> </p:column> <p:column headerText="相忌"> <h:outputText value="#{row.avoid}"/> </p:column> <p:column headerText="特性"> <h:outputText value="#{row.avoid}"/> </p:column> <p:column headerText="状态"> <h:outputText value="#{row.status}"/> </p:column> <p:column headerText="灭火器"> <h:outputText value="#{row.fire}"/> </p:column> <p:column headerText="随机码"> <h:outputText value="#{row.random}"/> </p:column> <p:column headerText="编码" width="200"> <h:outputText value="#{row.code}"/> </p:column> </p:dataTable> </p:panel> </h:form> <p:dialog modal="true" header="#{dangerousEncodeController.selectOne.id eq null?'新建':'修改'}" appendTo="@(body)" id="dialog" widgetVar="dialog" resizable="false" width="800" > <h:form id="dialogForm"> <p:panelGrid columns="4" styleClass="content2 grid-padding-bottom2"> <p:outputLabel value="柜号"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.containerNumber}" maxlength="100" required="true" requiredMessage="请输入柜号"/> <p:outputLabel value="试剂名称码"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.reagentCode}" maxlength="100" required="true" requiredMessage="请输入试剂名称码"/> <p:outputLabel value="试剂名称"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.reagentName}" maxlength="100" required="true" requiredMessage="请输入试剂名称"/> <p:outputLabel value="CAS号"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.cas}" maxlength="100" required="true" requiredMessage="请输入CAS号"/> <p:outputLabel value="备注"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.memo}" maxlength="100"/> <p:outputLabel value="性状"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.property}" maxlength="100"/> <p:outputLabel value="特性"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.feature}" maxlength="100" required="true" requiredMessage="请输入特性"/> <p:outputLabel value="相忌"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.avoid}" maxlength="100" required="true" requiredMessage="请输入相忌"/> <p:outputLabel value="状态"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.status}" maxlength="100" required="true" requiredMessage="请输入状态"/> <p:outputLabel value="灭火器"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.fire}" maxlength="100" required="true" requiredMessage="请输入灭火器"/> <p:outputLabel value="随机码"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.random}" maxlength="100" required="true" requiredMessage="请输入随机码"/> <p:outputLabel value="编码"/> <p:inputText value="#{dangerousEncodeController.dangerousEncode.code}" maxlength="100" required="true" requiredMessage="请输入编码"/> </p:panelGrid> <p:panel styleClass="btn"> <p:commandButton value="保存" actionListener="#{dangerousEncodeController.onSaveBtnClick}" process="@form" update=":dangerousEncodeForm:dangerousEncodeInfoMngDataTable"> <p:confirm header="确认" message="确认操作?"/> </p:commandButton> </p:panel> </h:form> </p:dialog> </ui:composition> </html>