From 6207311d7df3d47d27fdd78de33f49875550f52f Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期三, 23 十二月 2020 09:51:22 +0800
Subject: [PATCH] 编码替换字典页面

---
 src/main/java/com/nanometer/smartlab/controller/EncodeReplaceDictController.java |  176 +++++++++++
 src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictService.java       |   23 +
 src/main/java/com/nanometer/smartlab/entity/handler/ReplaceDictTypeHandler.java  |   33 ++
 src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictServiceImpl.java   |  107 +++++++
 src/main/webapp/WEB-INF/spring-menu.xml                                          |    6 
 src/main/java/com/nanometer/smartlab/entity/enumtype/ReplaceDictType.java        |   50 +++
 src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.java            |   25 +
 src/main/webapp/WEB-INF/config-mybatis.xml                                       |    1 
 src/main/java/com/nanometer/smartlab/entity/EncodeReplaceDict.java               |  112 +++++++
 src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.xml             |  195 +++++++++++++
 src/main/webapp/sys_encode_replace_dict.xhtml                                    |  137 +++++++++
 11 files changed, 865 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/EncodeReplaceDictController.java b/src/main/java/com/nanometer/smartlab/controller/EncodeReplaceDictController.java
new file mode 100644
index 0000000..2949efb
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/controller/EncodeReplaceDictController.java
@@ -0,0 +1,176 @@
+package com.nanometer.smartlab.controller;
+
+import com.nanometer.smartlab.entity.EncodeReplaceDict;
+import com.nanometer.smartlab.entity.SysUser;
+import com.nanometer.smartlab.entity.enumtype.ReplaceDictType;
+import com.nanometer.smartlab.service.EncodeReplaceDictService;
+import com.nanometer.smartlab.util.FacesUtils;
+import org.apache.log4j.Logger;
+import org.primefaces.context.RequestContext;
+import org.primefaces.model.LazyDataModel;
+import org.primefaces.model.SortOrder;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Controller;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+@Controller
+@Scope("session")
+public class EncodeReplaceDictController extends BaseController{
+
+    private static Logger logger = Logger.getLogger(EncodeReplaceDictController.class);
+
+    @Resource
+    private EncodeReplaceDictService encodeReplaceDictService;
+
+    private LazyDataModel<EncodeReplaceDict> dataModel;
+
+    private boolean isSearch;
+    //加了以防
+    private EncodeReplaceDict encodeReplaceDict = new EncodeReplaceDict();
+
+    private EncodeReplaceDict encodeReplaceDictFilter = new EncodeReplaceDict();
+
+    private EncodeReplaceDict selectOne;
+
+    private List<ReplaceDictType> list;
+
+
+    public LazyDataModel<EncodeReplaceDict> getDataModel() {
+        if (this.dataModel == null) {
+            this.dataModel = new LazyDataModel<EncodeReplaceDict>() {
+
+                public List<EncodeReplaceDict> load
+                        (int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
+                    List<EncodeReplaceDict> list = null;
+                    try {
+                        int pageCount = encodeReplaceDictService.countAll(encodeReplaceDictFilter);
+
+                        this.setRowCount(pageCount);
+                        if (pageCount > 0)
+                            list = encodeReplaceDictService.selectAll(encodeReplaceDictFilter, isSearch ? 0 : first, pageSize);
+                        //查询更换模式
+                        if (isSearch) {
+                            isSearch = false;
+                        }
+
+                    } catch (Exception e) {
+                        logger.error("error occured.", e);
+                    }
+                    return list;
+                }
+
+                @Override
+                public EncodeReplaceDict getRowData(String rowKey) {
+                    Iterator<EncodeReplaceDict> iterator = this.iterator();
+                    EncodeReplaceDict su = null;
+                    while (iterator.hasNext()) {
+                        su = iterator.next();
+                        if ( su.getId().equals(Long.parseLong(rowKey))) {
+                            return su;
+                        }
+                    }
+                    return null;
+                }
+            };
+        }
+        return dataModel;
+    }
+
+    //新建
+    public void onNewBtnClick() {
+        this.encodeReplaceDict = new EncodeReplaceDict();
+    }
+
+    //编辑
+    public void onEditBtnClick() {
+        if (this.selectOne == null) {
+            FacesUtils.warn("请选择数据");
+        } else {
+            this.encodeReplaceDict = selectOne;
+            RequestContext.getCurrentInstance().execute("PF('dialog').show()");
+        }
+    }
+
+    //删除
+    public void onDeleteBtnClick() {
+        if (this.selectOne == null) {
+            FacesUtils.warn("请选择数据");
+        } else {
+            encodeReplaceDictService.deleteOne(selectOne.getId());
+            FacesUtils.info("删除成功");
+        }
+    }
+
+    //保存
+    public void onSaveBtnClick(){
+
+        try {
+            if (encodeReplaceDict.getId() == null) {
+                //新增
+                //校验实体
+                encodeReplaceDictService.checkAddOne(encodeReplaceDict);
+                encodeReplaceDictService.addOne(encodeReplaceDict, getUser());
+
+            } else {
+                //更新
+                //校验实体
+                encodeReplaceDictService.checkUpdateOne(encodeReplaceDict);
+                encodeReplaceDictService.updateOne(encodeReplaceDict);
+            }
+
+
+            FacesUtils.info("操作成功");
+        }catch (Exception e){
+            e.printStackTrace();
+            FacesUtils.warn(e.getMessage());
+        }finally {
+            RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
+        }
+
+    }
+
+    //导入
+    public void importByExcel() {
+
+    }
+
+    public void modelChange() {
+        this.isSearch = true;
+    }
+
+
+    public EncodeReplaceDict getEncodeReplaceDictFilter() {
+        return encodeReplaceDictFilter;
+    }
+
+    public void setEncodeReplaceDictFilter(EncodeReplaceDict encodeReplaceDictFilter) {
+        this.encodeReplaceDictFilter = encodeReplaceDictFilter;
+    }
+
+    public EncodeReplaceDict getSelectOne() {
+        return selectOne;
+    }
+
+    public void setSelectOne(EncodeReplaceDict selectOne) {
+        this.selectOne = selectOne;
+    }
+
+    public EncodeReplaceDict getEncodeReplaceDict() {
+        return encodeReplaceDict;
+    }
+
+    public void setEncodeReplaceDict(EncodeReplaceDict encodeReplaceDict) {
+        this.encodeReplaceDict = encodeReplaceDict;
+    }
+
+    public void setList(List<ReplaceDictType> list) {
+        this.list = list;
+    }
+
+    public List<ReplaceDictType> getList() {
+        return new ArrayList<>(Arrays.asList(ReplaceDictType.values()));
+    }
+}
+
diff --git a/src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.java b/src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.java
new file mode 100644
index 0000000..079c366
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.java
@@ -0,0 +1,25 @@
+package com.nanometer.smartlab.dao;
+
+import com.nanometer.smartlab.entity.EncodeReplaceDict;
+
+import java.util.*;
+
+public interface EncodeReplaceDictMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(EncodeReplaceDict record);
+
+    int insertSelective(EncodeReplaceDict record);
+
+    EncodeReplaceDict selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(EncodeReplaceDict record);
+
+    int updateByPrimaryKey(EncodeReplaceDict record);
+
+    List<EncodeReplaceDict> selectAll(Map params);
+
+    int countAll(Map params);
+
+    int findByCondition(Map params);
+}
\ No newline at end of file
diff --git a/src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.xml b/src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.xml
new file mode 100644
index 0000000..56dc56b
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.xml
@@ -0,0 +1,195 @@
+<?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.EncodeReplaceDictMapper" >
+  <resultMap id="BaseResultMap" type="com.nanometer.smartlab.entity.EncodeReplaceDict" >
+    <!--          -->
+    <id column="id" property="id" jdbcType="BIGINT" />
+    <result column="type" property="type" typeHandler="com.nanometer.smartlab.entity.handler.ReplaceDictTypeHandler" />
+    <result column="number" property="number" jdbcType="VARCHAR" />
+    <result column="info" property="info" jdbcType="VARCHAR" />
+    <result column="abbreviation" property="abbreviation" jdbcType="VARCHAR" />
+    <result column="creator" property="creator" jdbcType="VARCHAR" />
+    <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+    <result column="valid_flag" property="validFlag" jdbcType="INTEGER" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    <!--          -->
+    id, type, number, info, abbreviation, creator, update_time, valid_flag
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
+    <!--          -->
+    select 
+    <include refid="Base_Column_List" />
+    from sys_encode_replace_dict
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectAll" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from sys_encode_replace_dict
+    <where>
+      valid_flag =1
+      <if test="info != null and info != ''">
+        and info like concat("%",#{info},"%")
+      </if>
+      <!--    精确查询      -->
+      <if test="p_info != null and p_info != ''">
+        and info = #{p_info}
+      </if>
+      <if test="number != null and number != ''">
+        and number like concat("%",#{number},"%")
+      </if>
+      <!--    精确查询      -->
+      <if test="p_number != null and p_number != ''">
+        and number = #{p_number}
+      </if>
+      <if test="type != null">
+        and type = #{type,}
+      </if>
+    </where>
+      order by update_time desc
+  </select>
+  <select id="countAll" resultType="java.lang.Integer">
+    select count(1)
+    from sys_encode_replace_dict
+    <where>
+      valid_flag =1
+      <if test="info != null and info != ''">
+        and info like concat("%",#{info},"%")
+      </if>
+      <if test="number != null and number != ''">
+        and number like concat("%",#{number},"%")
+      </if>
+      <if test="type != null">
+        and type = #{type}
+      </if>
+    </where>
+
+  </select>
+  <select id="findByCondition" resultType="java.lang.Integer" parameterType="java.util.Map">
+    select  count(1)
+    from sys_encode_replace_dict
+    <where>
+      valid_flag =1
+      <if test="info != null and info != ''">
+        and info like concat("%",#{info},"%")
+      </if>
+      <if test="number != null and number != ''">
+        and number like concat("%",#{number},"%")
+      </if>
+      <if test="type != null">
+        and type = #{type}
+      </if>
+    </where>
+  </select>
+  <update id="deleteByPrimaryKey" parameterType="java.lang.Long" >
+    <!--          -->
+    update  sys_encode_replace_dict set  valid_flag = 0
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <insert id="insert" parameterType="com.nanometer.smartlab.entity.EncodeReplaceDict" >
+    <!--          -->
+    insert into sys_encode_replace_dict (id, type, number, 
+      info, abbreviation, creator, 
+      update_time, valid_flag)
+    values (#{id,jdbcType=BIGINT}, #{type}, #{number,jdbcType=VARCHAR},
+      #{info,jdbcType=VARCHAR}, #{abbreviation,jdbcType=VARCHAR}, #{creator,jdbcType=VARCHAR}, 
+      #{updateTime,jdbcType=TIMESTAMP}, 1)
+  </insert>
+  <insert id="insertSelective" parameterType="com.nanometer.smartlab.entity.EncodeReplaceDict" >
+    <!--          -->
+    insert into sys_encode_replace_dict
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        id,
+      </if>
+      <if test="type != null" >
+        type,
+      </if>
+      <if test="number != null" >
+        number,
+      </if>
+      <if test="info != null" >
+        info,
+      </if>
+      <if test="abbreviation != null" >
+        abbreviation,
+      </if>
+      <if test="creator != null" >
+        creator,
+      </if>
+      <if test="updateTime != null" >
+        update_time,
+      </if>
+      <if test="validFlag != null" >
+        valid_flag,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="id != null" >
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="type != null" >
+        #{type},
+      </if>
+      <if test="number != null" >
+        #{number,jdbcType=VARCHAR},
+      </if>
+      <if test="info != null" >
+        #{info,jdbcType=VARCHAR},
+      </if>
+      <if test="abbreviation != null" >
+        #{abbreviation,jdbcType=VARCHAR},
+      </if>
+      <if test="creator != null" >
+        #{creator,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null" >
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="validFlag != null" >
+        #{validFlag,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.nanometer.smartlab.entity.EncodeReplaceDict" >
+    <!--          -->
+    update sys_encode_replace_dict
+    <set >
+      <if test="type != null" >
+        type = #{type},
+      </if>
+      <if test="number != null" >
+        number = #{number,jdbcType=VARCHAR},
+      </if>
+      <if test="info != null" >
+        info = #{info,jdbcType=VARCHAR},
+      </if>
+      <if test="abbreviation != null" >
+        abbreviation = #{abbreviation,jdbcType=VARCHAR},
+      </if>
+      <if test="creator != null" >
+        creator = #{creator,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null" >
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="validFlag != null" >
+        valid_flag = #{validFlag,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.nanometer.smartlab.entity.EncodeReplaceDict" >
+    <!--          -->
+    update sys_encode_replace_dict
+    set type = #{type},
+      number = #{number,jdbcType=VARCHAR},
+      info = #{info,jdbcType=VARCHAR},
+      abbreviation = #{abbreviation,jdbcType=VARCHAR},
+      creator = #{creator,jdbcType=VARCHAR},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      valid_flag = #{validFlag,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/src/main/java/com/nanometer/smartlab/entity/EncodeReplaceDict.java b/src/main/java/com/nanometer/smartlab/entity/EncodeReplaceDict.java
new file mode 100644
index 0000000..50c37e9
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/entity/EncodeReplaceDict.java
@@ -0,0 +1,112 @@
+package com.nanometer.smartlab.entity;
+
+import com.nanometer.smartlab.entity.enumtype.ReplaceDictType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class EncodeReplaceDict implements Serializable {
+    /** id  id **/
+    private Long id;
+
+    /** 三种类型:1.厂家,2.规格,3.包装  type **/
+    private ReplaceDictType type;
+
+    /** 编号  number **/
+    private String number;
+
+    /** 信息  info **/
+    private String info;
+
+    /** 信息简写  abbreviation **/
+    private String abbreviation;
+
+    /** 创建者  creator **/
+    private String creator;
+
+    /** 更新时间  update_time **/
+    private Date updateTime;
+
+    /**   valid_flag **/
+    private Integer validFlag;
+
+    /**   id  id   **/
+    public Long getId() {
+        return id;
+    }
+
+    /**   id  id   **/
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    /**   三种类型:1.厂家,2.规格,3.包装  type   **/
+    public ReplaceDictType getType() {
+        return type;
+    }
+
+    /**   三种类型:1.厂家,2.规格,3.包装  type   **/
+    public void setType(ReplaceDictType type) {
+        this.type = type;
+    }
+
+    /**   编号  number   **/
+    public String getNumber() {
+        return number;
+    }
+
+    /**   编号  number   **/
+    public void setNumber(String number) {
+        this.number = number == null ? null : number.trim();
+    }
+
+    /**   信息  info   **/
+    public String getInfo() {
+        return info;
+    }
+
+    /**   信息  info   **/
+    public void setInfo(String info) {
+        this.info = info == null ? null : info.trim();
+    }
+
+    /**   信息简写  abbreviation   **/
+    public String getAbbreviation() {
+        return abbreviation;
+    }
+
+    /**   信息简写  abbreviation   **/
+    public void setAbbreviation(String abbreviation) {
+        this.abbreviation = abbreviation == null ? null : abbreviation.trim();
+    }
+
+    /**   创建者  creator   **/
+    public String getCreator() {
+        return creator;
+    }
+
+    /**   创建者  creator   **/
+    public void setCreator(String creator) {
+        this.creator = creator == null ? null : creator.trim();
+    }
+
+    /**   更新时间  update_time   **/
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    /**   更新时间  update_time   **/
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    /**     valid_flag   **/
+    public Integer getValidFlag() {
+        return validFlag;
+    }
+
+    /**     valid_flag   **/
+    public void setValidFlag(Integer validFlag) {
+        this.validFlag = validFlag;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/nanometer/smartlab/entity/enumtype/ReplaceDictType.java b/src/main/java/com/nanometer/smartlab/entity/enumtype/ReplaceDictType.java
new file mode 100644
index 0000000..8d16e37
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/entity/enumtype/ReplaceDictType.java
@@ -0,0 +1,50 @@
+package com.nanometer.smartlab.entity.enumtype;
+
+
+
+import java.util.*;
+
+public enum ReplaceDictType {
+
+    factory (1, "厂家"),
+    specifications(2, "规格"),
+    packing(3, "包装");
+
+
+    private int key;
+
+    private String type;
+
+    ReplaceDictType(int key, String type){
+        this.key = key;
+        this.type = type;
+    }
+
+
+    public int getKey() {
+        return key;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    private static HashMap<Integer,ReplaceDictType> map = new HashMap<Integer,ReplaceDictType>();
+
+    static {
+        for(ReplaceDictType d : ReplaceDictType.values()){
+            map.put(d.key, d);
+        }
+
+    }
+
+    public static ReplaceDictType parse(Integer index) {
+        if(map.containsKey(index)){
+            return map.get(index);
+        }
+        return null;
+    }
+
+
+
+}
diff --git a/src/main/java/com/nanometer/smartlab/entity/handler/ReplaceDictTypeHandler.java b/src/main/java/com/nanometer/smartlab/entity/handler/ReplaceDictTypeHandler.java
new file mode 100644
index 0000000..c300b62
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/entity/handler/ReplaceDictTypeHandler.java
@@ -0,0 +1,33 @@
+package com.nanometer.smartlab.entity.handler;
+
+import com.nanometer.smartlab.entity.enumtype.ReplaceDictType;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class ReplaceDictTypeHandler extends BaseTypeHandler<ReplaceDictType> {
+
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i, ReplaceDictType parameter, JdbcType jdbcType) throws SQLException {
+        ps.setInt(i, parameter.getKey());
+    }
+
+    @Override
+    public ReplaceDictType getNullableResult(ResultSet rs, String columnName) throws SQLException {
+        return ReplaceDictType.parse(rs.getInt(columnName));
+    }
+
+    @Override
+    public ReplaceDictType getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+        return ReplaceDictType.parse(rs.getInt(columnIndex));
+    }
+
+    @Override
+    public ReplaceDictType getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+        return ReplaceDictType.parse(cs.getInt(columnIndex));
+    }
+}
diff --git a/src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictService.java b/src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictService.java
new file mode 100644
index 0000000..2be7830
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictService.java
@@ -0,0 +1,23 @@
+package com.nanometer.smartlab.service;
+
+import com.nanometer.smartlab.entity.EncodeReplaceDict;
+import com.nanometer.smartlab.entity.SysUser;
+
+import java.util.*;
+
+public interface EncodeReplaceDictService {
+
+    List<EncodeReplaceDict> selectAll(EncodeReplaceDict encodeReplaceDictFilter,Integer offset,Integer pageSize);
+
+    int countAll(EncodeReplaceDict encodeReplaceDictFilter);
+
+    void deleteOne(Long id);
+
+    void addOne(EncodeReplaceDict encodeReplaceDict, SysUser user);
+
+    void updateOne(EncodeReplaceDict encodeReplaceDict);
+
+    boolean checkAddOne(EncodeReplaceDict encodeReplaceDict) throws Exception;
+
+    void checkUpdateOne(EncodeReplaceDict encodeReplaceDict) throws Exception;
+}
diff --git a/src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictServiceImpl.java
new file mode 100644
index 0000000..be4a4fc
--- /dev/null
+++ b/src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictServiceImpl.java
@@ -0,0 +1,107 @@
+package com.nanometer.smartlab.service;
+
+import com.nanometer.smartlab.dao.EncodeReplaceDictMapper;
+import com.nanometer.smartlab.entity.EncodeReplaceDict;
+import com.nanometer.smartlab.entity.SysUser;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.*;
+
+@Service
+public class EncodeReplaceDictServiceImpl implements EncodeReplaceDictService{
+
+    @Resource
+    private EncodeReplaceDictMapper encodeReplaceDictMapper;
+
+    @Override
+    public List<EncodeReplaceDict> selectAll(EncodeReplaceDict encodeReplaceDictFilter, Integer offset, Integer pageSize) {
+        Map<String, Object> params = new HashMap<>();
+        if (encodeReplaceDictFilter != null){
+            params.put("info", encodeReplaceDictFilter.getInfo());
+            params.put("number", encodeReplaceDictFilter.getNumber());
+            params.put("type", encodeReplaceDictFilter.getType());
+        }
+        return encodeReplaceDictMapper.selectAll(params);
+    }
+
+    @Override
+    public int countAll(EncodeReplaceDict encodeReplaceDictFilter) {
+        Map<String, Object> params = new HashMap<>();
+        if (encodeReplaceDictFilter != null){
+            params.put("info", encodeReplaceDictFilter.getInfo());
+            params.put("number", encodeReplaceDictFilter.getNumber());
+            params.put("type", encodeReplaceDictFilter.getType());
+        }
+        return encodeReplaceDictMapper.countAll(params);
+    }
+
+    @Override
+    @Transactional
+    public void deleteOne(Long id) {
+        encodeReplaceDictMapper.deleteByPrimaryKey(id);
+    }
+
+    @Override
+    @Transactional
+    public void addOne(EncodeReplaceDict encodeReplaceDict, SysUser user) {
+        encodeReplaceDict.setUpdateTime(new Date());
+        encodeReplaceDict.setCreator(user.getId());
+        encodeReplaceDictMapper.insert(encodeReplaceDict);
+    }
+
+    @Override
+    @Transactional
+    public void updateOne(EncodeReplaceDict encodeReplaceDict) {
+        encodeReplaceDictMapper.updateByPrimaryKey(encodeReplaceDict);
+    }
+
+    @Override
+    public boolean checkAddOne(EncodeReplaceDict encodeReplaceDict) throws Exception {
+        Map<String, Object> params = null;
+        params = new HashMap<>();
+        //同一个类型下的编号是否重复
+        params.put("number", encodeReplaceDict.getNumber());
+        params.put("type", encodeReplaceDict.getType());
+        int check1 = encodeReplaceDictMapper.findByCondition(params);
+        if (check1 >0){
+            throw new Exception("编号重复");
+        }
+        //同一个类型下信息是否重复
+        params = new HashMap<>();
+        params.put("info", encodeReplaceDict.getInfo().trim());
+        params.put("type", encodeReplaceDict.getType());
+        int check2 = encodeReplaceDictMapper.findByCondition(params);
+        if (check2 >0){
+            throw new Exception("信息重复");
+        }
+        //同时不存在就合格
+        return check1 == 0 && check2 == 0;
+    }
+
+    @Override
+    public void checkUpdateOne(EncodeReplaceDict encodeReplaceDict) throws Exception {
+        Map<String, Object> params = null;
+        //同一个类型下编号除自己以外是否重复
+        params = new HashMap<>();
+        params.put("p_number", encodeReplaceDict.getNumber());
+        params.put("type", encodeReplaceDict.getType());
+        List<EncodeReplaceDict> checkList1 = encodeReplaceDictMapper.selectAll(params);
+        //结果如果不是自己就是重复
+        if (checkList1.size()>0 && !checkList1.get(0).getId().equals(encodeReplaceDict.getId())) {
+            throw new Exception("编号重复");
+        }
+        params = new HashMap<>();
+        params.put("p_info", encodeReplaceDict.getInfo().trim());
+        params.put("type", encodeReplaceDict.getType());
+        List<EncodeReplaceDict> checkList2 = encodeReplaceDictMapper.selectAll(params);
+        //结果如果不是自己就是重复
+        if (checkList2.size()>0 && !checkList2.get(0).getId().equals(encodeReplaceDict.getId())) {
+            throw new Exception("信息重复");
+        }
+    }
+
+
+}
diff --git a/src/main/webapp/WEB-INF/config-mybatis.xml b/src/main/webapp/WEB-INF/config-mybatis.xml
index a2b08d0..0635b1a 100644
--- a/src/main/webapp/WEB-INF/config-mybatis.xml
+++ b/src/main/webapp/WEB-INF/config-mybatis.xml
@@ -29,6 +29,7 @@
 		<typeHandler handler="com.nanometer.smartlab.entity.handler.EmailSendStatusHandler"/>
 		<typeHandler handler="com.nanometer.smartlab.entity.handler.DangerousFlagHandler"/>
 		<typeHandler handler="com.nanometer.smartlab.entity.handler.WarningLevelHandler"/>
+		<typeHandler handler="com.nanometer.smartlab.entity.handler.ReplaceDictTypeHandler"/>
 	</typeHandlers>
     
 </configuration>
diff --git a/src/main/webapp/WEB-INF/spring-menu.xml b/src/main/webapp/WEB-INF/spring-menu.xml
index 143cdb8..460ae42 100644
--- a/src/main/webapp/WEB-INF/spring-menu.xml
+++ b/src/main/webapp/WEB-INF/spring-menu.xml
@@ -217,6 +217,12 @@
                         <property name="page" value="sys_dangerous_encode"></property>
                         <property name="privilegeCode" value="sys_dangerous_encode"></property>
                     </bean>
+                    <bean class="com.nanometer.smartlab.model.MenuModel">
+                        <property name="id" value="sys_encode_replace_dict"></property>
+                        <property name="title" value="编码替换字典"></property>
+                        <property name="page" value="sys_encode_replace_dict"></property>
+                        <property name="privilegeCode" value="sys_encode_replace_dict"></property>
+                    </bean>
                 </list>
             </property>
         </bean>
diff --git a/src/main/webapp/sys_encode_replace_dict.xhtml b/src/main/webapp/sys_encode_replace_dict.xhtml
new file mode 100644
index 0000000..7ae4286
--- /dev/null
+++ b/src/main/webapp/sys_encode_replace_dict.xhtml
@@ -0,0 +1,137 @@
+<?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: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">
+<ui:composition>
+    <h:form id="encodeReplaceDictForm">
+        <p:panel styleClass="center-header">
+            <p:outputLabel styleClass="title" value="编码替换字典"/>
+
+            <p:panelGrid styleClass="filter" columns="9">
+                <p:outputLabel value="编号:"/>
+                <p:inputText value="#{encodeReplaceDictController.encodeReplaceDictFilter.number}"/>
+
+                <p:outputLabel value="信息:"/>
+                <p:inputText value="#{encodeReplaceDictController.encodeReplaceDictFilter.info}"/>
+
+                <p:outputLabel value="类型:"/>
+                <p:selectOneMenu value="#{encodeReplaceDictController.encodeReplaceDictFilter.type}">
+                    <f:selectItems value="#{encodeReplaceDictController.list}"
+                                   var="item" itemLabel="#{item.getType()}"  itemValue="#{item}"/>
+                </p:selectOneMenu>
+
+                <p:commandLink styleClass="search" process="@form" update="@form" actionListener="#{encodeReplaceDictController.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="#{encodeReplaceDictController.onNewBtnClick}"
+                                 oncomplete="PF('dialog').show();"
+                                 update=":dialog,:dialogForm"/>
+
+                <p:commandButton value="修改" styleClass="edit-btn"
+                                 process="@form"
+                                 actionListener="#{encodeReplaceDictController.onEditBtnClick}"
+                                 update=":dialog,:dialogForm"/>
+
+                <p:commandButton value="删除" styleClass="del-btn"
+                                 process="@form"
+                                 actionListener="#{encodeReplaceDictController.onDeleteBtnClick}"
+                                 update="@form">
+                    <p:confirm header="确认"
+                               message="确认操作?"/>
+                </p:commandButton>
+            </p:panelGrid>
+
+            <p:dataTable id="encodeReplaceDictInfoDataTable"
+                         styleClass="data-table"
+                         paginator="true"
+                         paginatorAlwaysVisible="false"
+                         paginatorPosition="bottom"
+                         lazy="true" value="#{encodeReplaceDictController.dataModel}"
+                         var="row"
+                         rowKey="#{row.id}"
+                         emptyMessage="无数据"
+                         rows="20"
+                         selection="#{encodeReplaceDictController.selectOne}"
+                         selectionMode="single"
+                         pageLinks="5">
+
+                <p:column headerText="类型">
+                    <h:outputText value="#{row.type.getType()}"/>
+                </p:column>
+
+                <p:column headerText="编号">
+                    <h:outputText value="#{row.number}"/>
+                </p:column>
+
+                <p:column headerText="信息">
+                    <h:outputText value="#{row.info}"/>
+                </p:column>
+
+                <p:column headerText="简称">
+                    <h:outputText value="#{row.abbreviation}"/>
+                </p:column>
+
+            </p:dataTable>
+        </p:panel>
+    </h:form>
+
+    <p:dialog modal="true"
+              header="#{encodeReplaceDictController.encodeReplaceDict.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="#{encodeReplaceDictController.encodeReplaceDict.number}"
+                             maxlength="1"
+                             required="true"
+                             onkeyup="this.value=this.value.replace(/[^0-9A-F]/g,'')"
+                             requiredMessage="请输入编号"/>
+
+                <p:outputLabel value="类型"/>
+                <p:selectOneMenu value="#{encodeReplaceDictController.encodeReplaceDict.type}">
+                    <f:selectItems value="#{encodeReplaceDictController.list}"
+                                   var="item" itemLabel="#{item.getType()}"  itemValue="#{item}"/>
+                </p:selectOneMenu>
+
+                <p:outputLabel value="简称"/>
+                <p:inputText value="#{encodeReplaceDictController.encodeReplaceDict.abbreviation}"
+                             maxlength="100" />
+
+                <p:outputLabel value="信息"/>
+                <p:inputText value="#{encodeReplaceDictController.encodeReplaceDict.info}"
+                             maxlength="100"
+                             required="true"
+                             requiredMessage="请填写信息"/>
+
+            </p:panelGrid>
+
+            <p:panel styleClass="btn">
+                <p:commandButton value="保存"
+                                 process="@form"
+                                 actionListener="#{encodeReplaceDictController.onSaveBtnClick}"
+                                 update=":encodeReplaceDictForm:encodeReplaceDictInfoDataTable">
+                    <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