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