From 9ce91fb10ce1d1022112aeeee5a0cdc7301dac4d Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期一, 21 十二月 2020 16:41:42 +0800
Subject: [PATCH] 新增模块:危化品编码

---
 src/main/webapp/WEB-INF/spring-menu.xml                                        |    6 
 src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java               |  214 ++++++++++
 src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml             |  293 ++++++++++++++
 src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java            |   26 +
 src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java       |   27 +
 src/main/webapp/resources/template/危化品编码导入模板.xlsx                              |    0 
 src/main/webapp/sys_dangerous_encode.xhtml                                     |  238 +++++++++++
 src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java |  196 +++++++++
 src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java   |  189 +++++++++
 9 files changed, 1,189 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java b/src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java
new file mode 100644
index 0000000..d7a4639
--- /dev/null
+++ b/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;
+    }
+
+
+}
diff --git a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java
new file mode 100644
index 0000000..0a2bbdd
--- /dev/null
+++ b/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);
+}
\ No newline at end of file
diff --git a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml
new file mode 100644
index 0000000..5bb352b
--- /dev/null
+++ b/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>
\ No newline at end of file
diff --git a/src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java b/src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java
new file mode 100644
index 0000000..3fcceb2
--- /dev/null
+++ b/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;
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java
new file mode 100644
index 0000000..eb0d5b6
--- /dev/null
+++ b/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);
+}
diff --git a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java
new file mode 100644
index 0000000..a3d630f
--- /dev/null
+++ b/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);
+
+    }
+
+
+}
diff --git a/src/main/webapp/WEB-INF/spring-menu.xml b/src/main/webapp/WEB-INF/spring-menu.xml
index 98f0b38..143cdb8 100644
--- a/src/main/webapp/WEB-INF/spring-menu.xml
+++ b/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>
diff --git "a/src/main/webapp/resources/template/\345\215\261\345\214\226\345\223\201\347\274\226\347\240\201\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/src/main/webapp/resources/template/\345\215\261\345\214\226\345\223\201\347\274\226\347\240\201\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..8acf068
--- /dev/null
+++ "b/src/main/webapp/resources/template/\345\215\261\345\214\226\345\223\201\347\274\226\347\240\201\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git a/src/main/webapp/sys_dangerous_encode.xhtml b/src/main/webapp/sys_dangerous_encode.xhtml
new file mode 100644
index 0000000..89e02a7
--- /dev/null
+++ b/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>
\ No newline at end of file

--
Gitblit v1.9.2