gdg
2020-12-23 6207311d7df3d47d27fdd78de33f49875550f52f
编码替换字典页面
已修改2个文件
已添加9个文件
865 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/controller/EncodeReplaceDictController.java 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/EncodeReplaceDictMapper.xml 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/entity/EncodeReplaceDict.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/entity/enumtype/ReplaceDictType.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/entity/handler/ReplaceDictTypeHandler.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/EncodeReplaceDictServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/WEB-INF/config-mybatis.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/WEB-INF/spring-menu.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/sys_encode_replace_dict.xhtml 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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()));
    }
}
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);
}
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>
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;
    }
}
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;
    }
}
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));
    }
}
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;
}
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("信息重复");
        }
    }
}
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>
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>
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>