From 0ece929cad95dbe0bb4c8be5e03ddccacec5a935 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期二, 22 十二月 2020 12:17:25 +0800
Subject: [PATCH] 修改危化品编码

---
 src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java               |   15 +-
 src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml             |   89 +++++++++++------
 src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java            |    7 +
 src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java       |    4 
 src/main/webapp/sys_dangerous_encode.xhtml                                     |    3 
 src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java |   79 +++++++++++++--
 src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java   |   74 +++++++++-----
 7 files changed, 188 insertions(+), 83 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java b/src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java
index d274fc5..e61e47b 100644
--- a/src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/DangerousEncodeController.java
@@ -4,6 +4,7 @@
 import com.nanometer.smartlab.service.DangerousEncodeService;
 import com.nanometer.smartlab.util.FacesUtils;
 import com.nanometer.smartlab.util.IDUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.primefaces.context.RequestContext;
 import org.primefaces.event.FileUploadEvent;
@@ -68,7 +69,7 @@
                     DangerousEncode su = null;
                     while (iterator.hasNext()) {
                         su = iterator.next();
-                        if (rowKey.equals(su.getId())) {
+                        if (Long.parseLong(rowKey) == (su.getId())) {
                             return su;
                         }
                     }
@@ -85,25 +86,83 @@
     //保存
     public void onSaveBtnClick(){
         try {
-
+            String retmsg = "";
             //插入
             if (dangerousEncode.getId() == null) {
                 //设置 id,创建者和更新时间
-                dangerousEncode.setId(IDUtils.uuid());
                 dangerousEncode.setCreator(getUser().getId());
                 dangerousEncode.setUpdateTime(new Date());
+
+                if (StringUtils.isBlank(dangerousEncode.getReagentCode())){
+                    retmsg +=("试剂名称码不能为空");
+                }else {
+                    List<DangerousEncode> list1 = dangerousEncodeService.selectByCodeAndName(dangerousEncode.getReagentCode(),null,null,null);
+                    if (list1.size() > 0){
+                        retmsg +=("试剂名称码已存在,请更换");
+                    }
+                }
+
+                if (StringUtils.isBlank(dangerousEncode.getReagentName())){
+                    retmsg +=("试剂名称不能为空");
+                }else {
+                    List<DangerousEncode> list1 = dangerousEncodeService.selectByCodeAndName(null,dangerousEncode.getReagentName(),null,null);
+                    if (list1.size() > 0){
+                        retmsg +=("试剂名称已存在,请更换");
+                    }
+                }
+
+                if (StringUtils.isBlank(dangerousEncode.getCode())){
+                    retmsg +=("编码不能为空");
+                }else {
+                    List<DangerousEncode> list1 = dangerousEncodeService.selectByCodeAndName(null,null,null,dangerousEncode.getCode());
+                    if (list1.size() > 0){
+                        retmsg +=("编码已存在,请更换");
+                    }
+                }
                 //插入
-                dangerousEncodeService.insertOne(dangerousEncode);
+                if (StringUtils.isBlank(retmsg)) {
+                    dangerousEncodeService.insertOne(dangerousEncode);
+                }
             }
             //更新
             else{
-                dangerousEncode.setUpdateTime(new Date());
-                dangerousEncodeService.updateOne(dangerousEncode);
+                if (StringUtils.isBlank(dangerousEncode.getReagentCode())){
+                    retmsg +=("试剂名称码不能为空");
+                }else {
+                    List<DangerousEncode> list1 = dangerousEncodeService.selectByCodeAndName(dangerousEncode.getReagentCode(),null,null,null);
+                    if (list1.size() > 0 && !list1.get(0).getId().equals(dangerousEncode.getId())){
+                        retmsg +=("试剂名称码已存在,请更换");
+                    }
+                }
+
+                if (StringUtils.isBlank(dangerousEncode.getReagentName())){
+                    retmsg +=("试剂名称不能为空");
+                }else {
+                    List<DangerousEncode> list1 = dangerousEncodeService.selectByCodeAndName(null,dangerousEncode.getReagentName(),null,null);
+                    if (list1.size() > 0 && !list1.get(0).getId().equals(dangerousEncode.getId())){
+                        retmsg +=("试剂名称已存在,请更换");
+                    }
+                }
+
+                if (StringUtils.isBlank(dangerousEncode.getCode())){
+                    retmsg +=("编码不能为空");
+                }else {
+                    List<DangerousEncode> list1 = dangerousEncodeService.selectByCodeAndName(null,null,null,dangerousEncode.getCode());
+                    if (list1.size() > 0 && !list1.get(0).getId().equals(dangerousEncode.getId())){
+                        retmsg += "编码已存在,请更换";
+                    }
+                }
+                if (StringUtils.isBlank(retmsg)) {
+                    dangerousEncode.setUpdateTime(new Date());
+                    dangerousEncodeService.updateOne(dangerousEncode);
+                }
             }
-
-            FacesUtils.info("操作成功");
-            RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
-
+            if (StringUtils.isNotBlank(retmsg)){
+                FacesUtils.error(retmsg);
+            }else {
+                RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
+                FacesUtils.info("操作成功");
+            }
         }catch (Exception e){
             e.printStackTrace();
             FacesUtils.warn("操作失败");
diff --git a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java
index 0a2bbdd..ae4c1fe 100644
--- a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java
+++ b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.java
@@ -1,12 +1,13 @@
 package com.nanometer.smartlab.dao;
 
 import com.nanometer.smartlab.entity.DangerousEncode;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
 
 public interface DangerousEncodeMapper {
-    int deleteByPrimaryKey(String id);
+    int deleteByPrimaryKey(Long id);
 
     int insert(DangerousEncode record);
 
@@ -23,4 +24,6 @@
     int countAll(Map params);
 
     List<Map> selectExportList(Map params);
-}
\ No newline at end of file
+
+    List<DangerousEncode> selectByCodeAndName(@Param("reagentcode") String reagentcode,@Param("reagentname") String reagentname,@Param("cas") String cas,@Param("code") String code);
+}
diff --git a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml
index b00b7a5..84d2724 100644
--- a/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/DangerousEncodeMapper.xml
@@ -4,7 +4,7 @@
 
   <resultMap id="BaseResultMap" type="com.nanometer.smartlab.entity.DangerousEncode">
     <!--          -->
-    <id column="id" jdbcType="VARCHAR" property="id" />
+    <id column="id" jdbcType="BIGINT" 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" />
@@ -23,34 +23,34 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--          -->
-    id, container_number, reagent_code, reagent_name, cas, memo, property, feature, avoid, 
+    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 
+    select
     <include refid="Base_Column_List" />
     from sys_dangerous_encode
-    where id = #{id,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=BIGINT}
   </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     <!--          -->
     delete from sys_dangerous_encode
-    where id = #{id,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=BIGINT}
   </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, 
+    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}, 
+    values (#{id,jdbcType=BIGINT}, #{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">
@@ -108,7 +108,7 @@
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
-        #{id,jdbcType=VARCHAR},
+        #{id,jdbcType=BIGINT},
       </if>
       <if test="containerNumber != null">
         #{containerNumber,jdbcType=VARCHAR},
@@ -207,7 +207,7 @@
         count = #{count,jdbcType=INTEGER},
       </if>
     </set>
-    where id = #{id,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=BIGINT}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.nanometer.smartlab.entity.DangerousEncode">
     <!--          -->
@@ -227,7 +227,7 @@
       update_time = #{updateTime,jdbcType=TIMESTAMP},
       creator = #{creator,jdbcType=VARCHAR},
       count = #{count,jdbcType=INTEGER}
-    where id = #{id,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=BIGINT}
   </update>
 
   <select id="selectAll" parameterType="java.util.Map" resultMap="BaseResultMap">
@@ -235,20 +235,21 @@
     <include refid="Base_Column_List" />
     from sys_dangerous_encode
     <where>
+        1=1
       <if test="reagentName !=null and reagentName != ''">
-        reagent_name like concat("%",#{reagentName},"%")
+        and reagent_name like concat("%",#{reagentName},"%")
       </if>
       <if test="cas !=null and cas != ''">
-        cas like concat("%",#{cas},"%")
+        and cas like concat("%",#{cas},"%")
       </if>
       <if test="reagentCode!=null and reagentCode != ''">
-        reagent_code like concat("%",#{reagentCode},"%")
+        and reagent_code like concat("%",#{reagentCode},"%")
       </if>
       <if test="containerNumber !=null and containerNumber != ''">
-        container_number like concat("%",#{containerNumber},"%")
+        and container_number like concat("%",#{containerNumber},"%")
       </if>
     </where>
-    order by update_time
+    order by update_time desc
     <if test="offset !=null and pageSize != null">
       limit #{offset},#{pageSize}
     </if>
@@ -258,17 +259,18 @@
     select count(1)
     from sys_dangerous_encode
     <where>
+        1=1
       <if test="reagentName !=null and reagentName != ''">
-        reagent_name like concat("%",#{reagentName},"%")
+        and reagent_name like concat("%",#{reagentName},"%")
       </if>
       <if test="cas !=null and cas != ''">
-        cas like concat("%",#{cas},"%")
+        and cas like concat("%",#{cas},"%")
       </if>
       <if test="reagentCode!=null and reagentCode != ''">
-        reagent_code like concat("%",#{reagentCode},"%")
+        and reagent_code like concat("%",#{reagentCode},"%")
       </if>
       <if test="containerNumber !=null and containerNumber != ''">
-        container_number like concat("%",#{containerNumber},"%")
+        and container_number like concat("%",#{containerNumber},"%")
       </if>
     </where>
   </select>
@@ -279,18 +281,39 @@
     status, fire, random, code, update_time, creator, count
     from sys_dangerous_encode
     <where>
+      1=1
       <if test="reagentName !=null and reagentName != ''">
-        reagent_name like concat("%",#{reagentName},"%")
+        and reagent_name like concat("%",#{reagentName},"%")
       </if>
       <if test="cas !=null and cas != ''">
-        cas like concat("%",#{cas},"%")
+        and cas like concat("%",#{cas},"%")
       </if>
       <if test="reagentCode!=null and reagentCode != ''">
-        reagent_code like concat("%",#{reagentCode},"%")
+        and reagent_code like concat("%",#{reagentCode},"%")
       </if>
       <if test="containerNumber !=null and containerNumber != ''">
-        container_number like concat("%",#{containerNumber},"%")
+        and container_number like concat("%",#{containerNumber},"%")
       </if>
     </where>
   </select>
-</mapper>
\ No newline at end of file
+  <select id="selectByCodeAndName" resultType="com.nanometer.smartlab.entity.DangerousEncode">
+    select
+    <include refid="Base_Column_List" />
+    from sys_dangerous_encode
+    <where>
+      1=1
+      <if test="reagentcode != null and reagentcode != ''">
+        and reagent_code =  #{reagentcode}
+      </if>
+      <if test="reagentname != null and reagentname != ''">
+        and reagent_name =  #{reagentname}
+      </if>
+      <if test="cas != null and cas != ''">
+        and cas = #{cas}
+      </if>
+      <if test="code != null and code != ''">
+        and code = #{code}
+      </if>
+    </where>
+  </select>
+</mapper>
diff --git a/src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java b/src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java
index 3fcceb2..a763b38 100644
--- a/src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java
+++ b/src/main/java/com/nanometer/smartlab/entity/DangerousEncode.java
@@ -1,10 +1,11 @@
 package com.nanometer.smartlab.entity;
 
+import java.io.Serializable;
 import java.util.Date;
 
-public class DangerousEncode {
+public class DangerousEncode implements Serializable {
     /** id  id **/
-    private String id;
+    private Long id;
 
     /** 柜码  container_number **/
     private String containerNumber;
@@ -51,14 +52,12 @@
     /** 使用次数  count **/
     private Integer count;
 
-    /**   id  id   **/
-    public String getId() {
+    public Long getId() {
         return id;
     }
 
-    /**   id  id   **/
-    public void setId(String id) {
-        this.id = id == null ? null : id.trim();
+    public void setId(Long id) {
+        this.id = id;
     }
 
     /**   柜码  container_number   **/
@@ -211,4 +210,4 @@
         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
index eb0d5b6..60fd7e5 100644
--- a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java
+++ b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeService.java
@@ -13,7 +13,7 @@
 
     int countAll(DangerousEncode dangerousEncodeFilter);
 
-    void deleteOne(String id);
+    void deleteOne(Long id);
 
     void insertOne(DangerousEncode dangerousEncode);
 
@@ -24,4 +24,6 @@
     void export2Excel(List<Map> list) throws Exception;
 
     List<Map> exportList(DangerousEncode dangerousEncodeFilter);
+
+    List<DangerousEncode> selectByCodeAndName(String reagentcode, String reagentname,String cas,String code);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java
index a3d630f..390ca26 100644
--- a/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/DangerousEncodeServiceImpl.java
@@ -4,7 +4,9 @@
 import com.nanometer.smartlab.entity.DangerousEncode;
 import com.nanometer.smartlab.entity.SysUser;
 import com.nanometer.smartlab.util.ExcelUtils;
+import com.nanometer.smartlab.util.FacesUtils;
 import com.nanometer.smartlab.util.IDUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.Row;
@@ -57,7 +59,7 @@
 
     @Override
     @Transactional
-    public void deleteOne(String id) {
+    public void deleteOne(Long id) {
         dangerousEncodeMapper.deleteByPrimaryKey(id);
     }
 
@@ -77,19 +79,6 @@
     @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;
@@ -106,12 +95,12 @@
         int totalRows = sheet.getPhysicalNumberOfRows();
         Row row = null;
         int totalCells = 0;
+        String retmsg = "";
         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) {
@@ -121,18 +110,8 @@
                 }
                 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));
@@ -145,13 +124,48 @@
             dangerousEncode.setFire(valuesList.get(9));
             dangerousEncode.setRandom(valuesList.get(10));
             dangerousEncode.setCode(valuesList.get(11));
+
+            if (StringUtils.isBlank(dangerousEncode.getReagentCode())){
+                retmsg += "第"+i+1+"行,试剂名称码不能为空";
+                continue;
+            }else {
+                List<DangerousEncode> list1 = this.selectByCodeAndName(dangerousEncode.getReagentCode(),null,null,null);
+                if (list1.size() > 0){
+                    retmsg += "第"+i+1+"行,试剂名称码已存在,请更换";
+                    continue;
+                }
+            }
+
+            if (StringUtils.isBlank(dangerousEncode.getReagentName())){
+                retmsg += "第"+i+1+"行,试剂名称不能为空";
+                continue;
+            }else {
+                List<DangerousEncode> list1 = this.selectByCodeAndName(null,dangerousEncode.getReagentName(),null,null);
+                if (list1.size() > 0){
+                    retmsg += "第"+i+1+"行,试剂名称已存在,请更换";
+                    continue;
+                }
+            }
+
+            if (StringUtils.isBlank(dangerousEncode.getCode())){
+                retmsg += "第"+i+1+"行,编码不能为空";
+                continue;
+            }else {
+                List<DangerousEncode> list1 = this.selectByCodeAndName(null,null,null,dangerousEncode.getCode());
+                if (list1.size() > 0){
+                    retmsg += "第"+i+1+"行,编码已存在,请更换";
+                    continue;
+                }
+            }
             dangerousEncode.setCount(0);
-            dangerousEncode.setUpdateTime(date);
+            dangerousEncode.setUpdateTime(new Date());
             dangerousEncode.setCreator(user.getId());
             dangerousEncodeMapper.insert(dangerousEncode);
         }
 
-
+        if (StringUtils.isNotBlank(retmsg)){
+            FacesUtils.error(retmsg);
+        }
     }
 
     @Override
@@ -167,6 +181,12 @@
     }
 
     @Override
+    public List<DangerousEncode> selectByCodeAndName(String reagentcode, String reagentname, String cas, String code) {
+        return dangerousEncodeMapper.selectByCodeAndName(reagentcode,reagentname,cas,code);
+    }
+
+
+    @Override
     public void export2Excel(List<Map> list) throws Exception {
         Map<String,String> map = new LinkedHashMap<>();
         map.put("containerNumber", "柜号");
diff --git a/src/main/webapp/sys_dangerous_encode.xhtml b/src/main/webapp/sys_dangerous_encode.xhtml
index 39c454b..f49003e 100644
--- a/src/main/webapp/sys_dangerous_encode.xhtml
+++ b/src/main/webapp/sys_dangerous_encode.xhtml
@@ -85,7 +85,6 @@
                          selection="#{dangerousEncodeController.selectOne}"
                          selectionMode="single"
                          pageLinks="5">
-
                 <p:column headerText="试剂名称码">
                     <h:outputText value="#{row.reagentCode}"/>
                 </p:column>
@@ -243,4 +242,4 @@
         </h:form>
     </p:dialog>
 </ui:composition>
-</html>
\ No newline at end of file
+</html>

--
Gitblit v1.9.2