From 78ea95ba31e63279b46d47c5c9ca983f3e0c8d47 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期二, 26 一月 2021 18:08:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java         |    5 
 src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml                 |   13 ++
 src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml                      |   12 +
 src/main/java/com/nanometer/smartlab/service/InterfaceService.java                  |    4 
 src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java                  |    2 
 src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java             |    6 
 src/main/java/com/nanometer/smartlab/controller/UserMngController.java              |    5 
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java |   12 +
 src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java              |   59 +++++++++
 src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java           |    2 
 src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java             |    2 
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml              |   55 +++++---
 src/main/java/com/nanometer/smartlab/api/ApiAction.java                             |   69 +++++++++++
 src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml                   |   50 +++++--
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java             |    2 
 智慧实验室接口.docx                                                                        |    0 
 src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java                     |    5 
 src/main/webapp/WEB-INF/test/test.properties                                        |    2 
 18 files changed, 251 insertions(+), 54 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
index 9f38637..4ce057e 100644
--- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java
+++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -1576,7 +1576,7 @@
      */
     @ResponseBody
     @RequestMapping("hazardousWaste/getWasteInfo")
-    public Object getLabAndUser(@RequestParam(required=true) int adminFlag,@RequestParam(required=true) String name,@RequestParam(required=false) String status
+    public Object getWasteInfo(@RequestParam(required=true) int adminFlag,@RequestParam(required=true) String name,@RequestParam(required=false) String status
     ,@RequestParam(required=false) String starttime,@RequestParam(required=false) String endtime){
         try {
             if (StringUtils.isBlank(name)){
@@ -1601,7 +1601,7 @@
      */
     @ResponseBody
     @RequestMapping("hazardousWaste/changeStatus")
-    public Object getLabAndUser(@RequestParam(required=true) String tid,@RequestParam(required=true) String status,
+    public Object changeStatus(@RequestParam(required=true) String tid,@RequestParam(required=true) String status,
                                 @RequestParam(required=true) String updator){
         try {
             if (StringUtils.isBlank(tid) || StringUtils.isBlank(status)){
@@ -1688,4 +1688,69 @@
     }
 
 
+    /**
+     * 根据用户名获取危废全年统计列表
+     *
+     */
+    @ResponseBody
+    @RequestMapping("hazardousWaste/getWasteStatistics")
+    public Object getWasteStatistics(@RequestParam(required=true) int adminFlag,@RequestParam(required=true) String name){
+        try {
+            if (StringUtils.isBlank(name)){
+                return  ResponseModel.getErrInstance("姓名不能为空");
+            }
+            Calendar calendar = Calendar.getInstance();
+            int year = calendar.get(Calendar.YEAR);
+            String status = "已确认";
+            String starttime = year+"-01-01 00:00:00";
+            String endtime = year+"-12-31 23:59:59";
+            List<HazardousWaste> hazardousWasters = new ArrayList<>();
+            if (adminFlag == 2){
+                hazardousWasters = hazardousWasteService.setAllWasterCount(starttime,endtime,status,null);
+            }else if (adminFlag == 1) {
+                hazardousWasters = hazardousWasteService.setAllWasterCount(starttime,endtime,status,name);
+            }
+            return ResponseModel.getOkInstence(hazardousWasters);
+        }catch (Exception e){
+            e.printStackTrace();
+            logger.info(e);
+            return ResponseModel.getErrInstance("系统出错");
+        }
+    }
+
+    // 处理人员违规预警接口
+    @ResponseBody
+    @RequestMapping(value = "/delalarmperson")
+    public String delalarmperson(HttpServletRequest request) throws IOException {
+        logger.info("/api/service/delalarmperson");
+        BufferedReader br = request.getReader();
+        String str, data = "";
+        while((str = br.readLine()) != null){
+            data += str;
+        }
+        logger.info("delalarmperson" + data);
+//        String userId = request.getHeader("userId");
+        JSONObject retJSON = new JSONObject();
+        try {
+            interfaceService.delalarmperson(JSONObject.parseObject(data));
+
+            retJSON.put("code", ApiStatus.OK.getRetCode());
+            retJSON.put("message", ApiStatus.OK.getRetMsg());
+        } catch (ApiException e) {
+            retJSON.put("code", e.getApiStatus().getRetCode());
+            retJSON.put("message", e.getErrorMessage());
+        } catch (Exception e) {
+            retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
+            StackTraceElement[] stackTraceElements = e.getStackTrace();
+
+            StringBuilder sb = new StringBuilder();
+            sb.append(e.toString());
+            for (StackTraceElement stackTraceElement : stackTraceElements) {
+                sb.append("\n");
+                sb.append(stackTraceElement.toString());
+            }
+            retJSON.put("message", ApiStatus.SYS_ERR.getRetMsg() + "--" + sb.toString());
+        }
+        return retJSON.toJSONString();
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
index 54fcbcd..66eeb1d 100644
--- a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
@@ -662,7 +662,7 @@
 					throw new Exception("导入文件格式不正确");
 				}*/
 
-                for (int t = 0; t < totalCells; t++) {
+                for (int t = 0; t <= totalCells; t++) {
                     //System.out.println(row.getCell(t));
                     String cellInfo="";
                     String groupId = "";
diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
index 4b6dcb6..fe55ece 100644
--- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
@@ -451,6 +451,11 @@
                 if(sysUser.getPassword()==null || sysUser.getPassword().equals("")){
                     sysUser.setPassword(this.editPasswor);
                 }else {
+                    String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
+                    if (!sysUser.getPassword().matches(PW_PATTERN)){
+                        FacesUtils.warn("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
+                        return;
+                    }
                     sysUser.setPassword(MD5Utils.encode(sysUser.getPassword()));
                 }
                 this.sysUserService.updateSysUser(sysUser);
diff --git a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java
index 1f24a3a..5825e2e 100644
--- a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java
+++ b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java
@@ -33,4 +33,6 @@
     List<HazardousWaste> setAllWasters(@Param("starttime") String starttime,@Param("endtime") String endtime,@Param("status") String status,@Param("applyPerson") String applyPerson);
 
     HazardousWaste selectByTid(@Param("tid") String tid);
+
+    List<HazardousWaste> setAllWasterCount(@Param("starttime") String starttime,@Param("endtime") String endtime,@Param("status") String status,@Param("applyPerson") String applyPerson);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml
index b6b49f4..1d5b686 100644
--- a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml
@@ -226,17 +226,37 @@
       updatetime = #{updatetime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>
-  <select id="setAllWasters" resultMap="BaseResultMap">
+  <select id="setAllWasterCount" resultType="com.nanometer.smartlab.entity.HazardousWaste">
+    select
+    sum(acid) as acid,sum(alkali) as alkali, sum(organic) as organic,sum(solid) as solid,sum(medical) as medical
+    from sys_hazardous_waste
+    <where>
+      1 = 1
+      <if test="starttime != null and starttime != ''">
+        and create_time &gt;= #{starttime}
+      </if>
+      <if test="endtime != null and endtime != ''">
+        and create_time &lt;= #{endtime}
+      </if>
+      <if test="status != null and status != ''">
+        and status = #{status}
+      </if>
+      <if test="applyPerson != null and applyPerson != ''">
+        and apply_person = #{applyPerson}
+      </if>
+    </where>
+  </select>
+    <select id="setAllWasters" resultMap="BaseResultMap">
     select
     <include refid="Base_Column_List" />
     from sys_hazardous_waste
     <where>
       1 = 1
       <if test="starttime != null and starttime != ''">
-        and create_time &gt; #{starttime}
+        and create_time &gt;= #{starttime}
       </if>
       <if test="endtime != null and endtime != ''">
-        and create_time &lt; #{endtime}
+        and create_time &lt;= #{endtime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
@@ -255,10 +275,10 @@
     <where>
       1 = 1
       <if test="startTime != null and startTime != ''">
-        and create_time &gt; #{startTime}
+        and create_time &gt;= #{startTime}
       </if>
       <if test="endTime != null and endTime != ''">
-        and create_time &lt; #{endTime}
+        and create_time &lt;= #{endTime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
@@ -289,10 +309,10 @@
     <where>
       1 = 1
       <if test="startTime != null and startTime != ''">
-        and create_time &gt; #{startTime}
+        and create_time &gt;= #{startTime}
       </if>
       <if test="endTime != null and endTime != ''">
-        and create_time &lt; #{endTime}
+        and create_time &lt;= #{endTime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
@@ -319,10 +339,10 @@
     <where>
       1 = 1
       <if test="startTime != null and startTime != ''">
-        and create_time &gt; #{startTime}
+        and create_time &gt;= #{startTime}
       </if>
       <if test="endTime != null and endTime != ''">
-        and create_time &lt; #{endTime}
+        and create_time &lt;= #{endTime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
@@ -348,10 +368,10 @@
     <where>
       1 = 1
       <if test="startTime != null and startTime != ''">
-        and create_time &gt; #{startTime}
+        and create_time &gt;= #{startTime}
       </if>
       <if test="endTime != null and endTime != ''">
-        and create_time &lt; #{endTime}
+        and create_time &lt;= #{endTime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
@@ -376,10 +396,10 @@
     <where>
       1 = 1
       <if test="startTime != null and startTime != ''">
-        and create_time &gt; #{startTime}
+        and create_time &gt;= #{startTime}
       </if>
       <if test="endTime != null and endTime != ''">
-        and create_time &lt; #{endTime}
+        and create_time &lt;= #{endTime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
@@ -408,10 +428,10 @@
     <where>
       1 = 1
       <if test="startTime != null and startTime != ''">
-        and create_time &gt; #{startTime}
+        and create_time &gt;= #{startTime}
       </if>
       <if test="endTime != null and endTime != ''">
-        and create_time &lt; #{endTime}
+        and create_time &lt;= #{endTime}
       </if>
       <if test="status != null and status != ''">
         and status = #{status}
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
index 1993ced..36ae49e 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeWarehouseReserveDao.xml
@@ -111,7 +111,18 @@
     </insert>
 
     <update id="updateOpeWarehouseReserve" parameterType="com.nanometer.smartlab.entity.OpeWarehouseReserve">
-        update ope_warehouse_reserve set reagent_id=#{reagentId},warehouseId=#{warehouseId}, article_number=#{articleNumber}, reserve=#{reserve}, update_time=now()
+        update ope_warehouse_reserve
+        <set>
+            reagent_id=#{reagentId},
+            reserve=#{reserve},
+            update_time=now(),
+            <if test="articleNumber != null and articleNumber !=''">
+                article_number=#{articleNumber},
+            </if>
+            <if test="warehouseId != null and warehouseId !=''">
+                warehouseId=#{warehouseId},
+            </if>
+        </set>
         where id=#{id}
     </update>
 
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java
index 007933d..8852b43 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java
@@ -6,11 +6,14 @@
 import com.nanometer.smartlab.entity.SysAlarmPerson;
 
 import java.sql.Timestamp;
+import java.util.List;
 import java.util.Map;
 
 public interface SysAlarmPersonDao {
-	
+
 	public void insertSysAlarmPerson(SysAlarmPerson sysAlarmPerson) throws DataAccessException;
 
 	int repeatedJudgment(@Param("containerCode") String containerCode, @Param("warningLevel") Integer warningLevel, @Param("warningTime")Timestamp warningTime);
+
+    List<SysAlarmPerson> selectByCode(@Param("containerCode") String containerCode,@Param("warningId") String warningid);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml
index 711355f..c5bdf3d 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml
@@ -9,6 +9,7 @@
     <result property="warningLevel" column="warning_level" typeHandler="com.nanometer.smartlab.entity.handler.WarningLevelHandler"></result>
    	<result property="userId" column="user_id"></result>
    	<result property="warningPoint" column="warning_point"></result>
+    <result property="refId" column="daping_alarm_id"/>
   </resultMap>
 
   <insert id="insertSysAlarmPerson" parameterType="com.nanometer.smartlab.entity.SysAlarmPerson">
@@ -24,5 +25,14 @@
       and  warning_time = #{warningTime}
       and  warning_level = #{warningLevel}
   </select>
-
+  <select id="selectByCode" resultType="com.nanometer.smartlab.entity.SysAlarmPerson">
+      select
+       id,
+       container_code as containerCode,
+       warning_id as warningId,
+       daping_alarm_id as refId
+      from sys_warning
+      where container_code = #{containerCode}
+      and  warning_id = #{warningId}
+  </select>
 </mapper>
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
index 934aae4..0fa11d9 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
@@ -47,5 +47,5 @@
 
     List<Map> exportExcelList(Map params);
 
-    String selectProjectsByContainerCode(String containerCode);
+    List<String> selectProjectsByContainerCode(String containerCode);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
index 85327fe..d96843d 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -30,14 +30,24 @@
   </select>
 
   <select id="getSysLaboratoryContainer" parameterType="java.lang.String"  resultMap="SysLaboratoryContainer" >
-    select su.*,ss.name as laboratoryName, ss.type as laboratoryType ,su.project project from sys_laboratory_container as su
+    select su.*,ss.name as laboratoryName, ss.type as laboratoryType ,su.project project
+    from sys_laboratory_container as su
     left join sys_laboratory as ss on su.laboratory_id = ss.id
-    where su.id = #{id} and su.valid_flag = 1
+    where su.id = #{id}
+    and su.valid_flag = 1
+    and ss.valid_flag = 1
   </select>
 
   <select id="getSysLaboratoryContainerByContainerCode" parameterType="java.lang.String" resultMap="SysLaboratoryContainer">
-    select * from sys_laboratory_container
-    where container_code = #{containerCode} and valid_flag = 1
+     SELECT
+     sys_laboratory_container.*
+     FROM
+     sys_laboratory_container
+     LEFT JOIN sys_laboratory on sys_laboratory.id = sys_laboratory_container.laboratory_id
+     WHERE
+     sys_laboratory_container.container_code = #{containerCode}
+     AND sys_laboratory_container.valid_flag = 1
+     AND sys_laboratory.valid_flag = 1
   </select>
 
   <select id="updateSysLabContainer" parameterType="java.util.Map" >
@@ -189,15 +199,15 @@
 
   <select id="getContainerPersonInCharge" parameterType="java.lang.String" resultType="java.util.Map">
     SELECT slc.container_code containCode,su.name name,su.phone phone,
-CONCAT(sl.location1,"-",sl.location2) location
-
-FROM sys_laboratory_container slc
-LEFT JOIN sys_laboratory sl on sl.id = slc.laboratory_id
-LEFT JOIN sys_user su on su.department = sl.department
-LEFT JOIN base_role br on br.id = su.role_id
-WHERE slc.container_code = #{containerCode}
-and su.valid_flag =1
-and br.`name` = '实验负责人'
+    CONCAT(sl.location1,"-",sl.location2) location
+    FROM sys_laboratory_container slc
+    LEFT JOIN sys_laboratory sl on sl.id = slc.laboratory_id
+    LEFT JOIN sys_user su on su.department = sl.department
+    LEFT JOIN base_role br on br.id = su.role_id
+    WHERE slc.container_code = #{containerCode}
+    and su.valid_flag =1
+    and sl.valid_flag =1
+    and br.`name` = '实验负责人'
   </select>
 
 
@@ -211,13 +221,18 @@
   LEFT JOIN sys_laboratory sl on sl.id = slc.laboratory_id
   WHERE slc.container_code = #{containerCode}
   and slc.valid_flag = 1
+  and sl.valid_flag = 1
   </select>
 
-    <select id="selectProjectsByContainerCode" resultType="java.lang.String">
-        select project
-        from sys_laboratory_container
-        where container_code = #{0}
-        and valid_flag = 1
-    </select>
-
+  <select id="selectProjectsByContainerCode" resultType="java.lang.String">
+  SELECT
+	slc.project
+    FROM
+	sys_laboratory_container AS slc
+    LEFT JOIN sys_laboratory sl ON sl.id = slc.laboratory_id
+    WHERE
+	slc.container_code = #{0}
+    AND slc.valid_flag = 1
+    AND sl.valid_flag = 1
+  </select>
 </mapper>
diff --git a/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java b/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java
index 55d5219..fd1882a 100644
--- a/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java
+++ b/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java
@@ -31,4 +31,6 @@
     HazardousWaste selectByTid(String tid);
 
     void updateWaste(HazardousWaste hazardousWaste);
+
+    List<HazardousWaste> setAllWasterCount(String starttime, String endtime, String status, String applyPerson);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java
index 5e8c800..12f8062 100644
--- a/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java
@@ -162,4 +162,9 @@
         hazardousWasteMapper.updateByPrimaryKeySelective(hazardousWaste);
     }
 
+    @Override
+    public List<HazardousWaste> setAllWasterCount(String starttime, String endtime, String status, String applyPerson) {
+        return hazardousWasteMapper.setAllWasterCount(starttime, endtime, status, applyPerson);
+    }
+
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceService.java b/src/main/java/com/nanometer/smartlab/service/InterfaceService.java
index a1b6143..2553bd7 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceService.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceService.java
@@ -23,7 +23,7 @@
     public void synchAllCabinet(JSONArray jsonObject) throws ApiException;
 
     public void alarm(JSONObject jsonObject) throws ApiException;
-    
+
     public void alarmperson(JSONObject jsonObject) throws Exception;
 
     public void cabinetData(JSONArray jsonObject) throws ApiException;
@@ -39,4 +39,6 @@
 	public List<SysUser> getUserListByContainerCode(String containerCode, String startTime,String endTime) throws ApiException;
 
     List<SysUser> getUserListByContainerCodeNew(String containerCode, String startTime, String endTime) throws ApiException;
+
+    public void delalarmperson(JSONObject jsonObject) throws Exception;
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
index ddf7301..d197cf3 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -33,6 +33,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service("interfaceService")
 public class InterfaceServiceImpl implements InterfaceService {
@@ -41,7 +42,10 @@
 
 	@Resource
 	private OpeUseFlowService opeUseFlowService;
-
+	@Resource
+    private SysWarningService sysWarningService;
+    @Resource(name = "sysWarningDao")
+    SysWarningDao sysWarningDao;
     @Resource(name = "sysWarehouseDao")
     SysWarehouseDao sysWarehouseDao;
 
@@ -1032,7 +1036,7 @@
         }
         List<String> projects = sysLaboratoryContainer.selectProjectsByContainerCode(containerCode);
         List<SysUser> userList = null;
-        if (projects != null) {
+        if (projects != null && projects.size() > 0){
             userList = new ArrayList<>();
             for (String project : projects) {
                 List<SysUser> dataList = sysUserDao.getUserListByProject(project, startTime, endTime);
@@ -1448,7 +1452,7 @@
                 }
                 //给daping系统发送信息
 
-                if(!"".equals(alarmUrl) && ("1".equals(warningId) || "2".equals(warningId)|| "6".equals(warningId)) ) {
+                if(!"".equals(alarmUrl) && ("1".equals(warningId) || "2".equals(warningId))){
                     JSONObject json = new JSONObject();
                     json.put("barCode", location.get("barCode"));
                     json.put("type", alarmType);
@@ -1728,4 +1732,53 @@
     public JSONObject getUserInfo(JSONObject jsonObject) {
         return null;
     }
+
+    // 人员违规预警接口
+    @Override
+    public void delalarmperson(JSONObject jsonObject) throws Exception {
+        JSONArray dataArr = jsonObject.getJSONArray("data");
+        Iterator<Object> dataIt = dataArr.iterator();
+        while (dataIt.hasNext()) {
+            JSONObject dataJson = JSONObject.parseObject(dataIt.next().toString());
+            // 货柜条码 containerCode String ○
+            // 报警类别 warningId Integer ○
+            if (!dataJson.containsKey("warningId") || !dataJson.containsKey("containerCode")) {
+                throw new ApiException(ApiStatus.PARAM_NO_EXIST);
+            }
+            String containerCode = dataJson.getString("containerCode");
+            String warningId = dataJson.getString("warningId");
+            List<String> warningList = Arrays.asList(warningId.split(","));
+            List<String> warningList1 = new ArrayList<>(Arrays.asList("1","2","3","4","5","6"));
+            List<String> delWarnings = warningList1.stream().filter(o->!warningList.contains(o)).collect(Collectors.toList());//新的不在原有里面的
+
+            for (String warning : delWarnings){
+                Map<String, String> metaMap = new HashMap<>();
+                metaMap.put("groupId", "user_violate_type");
+                metaMap.put("metaKey", warning);
+
+                List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
+                if (baseMetaList == null || baseMetaList.size() != 1) {
+                    throw new ApiException(ApiStatus.PARAM_ERR, ApiStatus.PARAM_ERR.getRetMsg() + "[warningId]");
+                }
+                SysAlarmPerson sysAlarmPerson = new SysAlarmPerson();
+                sysAlarmPerson.setContainerCode(containerCode);
+                sysAlarmPerson.setWarningId(baseMetaList.get(0).getId());
+                List<SysAlarmPerson> sysAlarmPersonList = sysAlarmPersonDao.selectByCode(containerCode, baseMetaList.get(0).getId());
+                for (SysAlarmPerson sysAlarm : sysAlarmPersonList) {
+                    if (!"".equals(alarmUrl) && StringUtils.isNotBlank(sysAlarm.getRefId()) && ("1".equals(warning) || "2".equals(warning))) {
+                        SysWarning sysWarning = new SysWarning();
+                        sysWarning.setId(String.valueOf(sysAlarm.getId()));
+                        sysWarning.setStatus(1);
+                        sysWarning.setAlarmId(sysAlarm.getRefId());
+                        sysWarningService.updateSysWarning(sysWarning);
+                    }else {
+                        Map<String,Object> params = new HashMap<>();
+                        params.put("status",1);
+                        params.put("id", String.valueOf(sysAlarm.getId()));
+                        sysWarningDao.updateSysWarning(params);
+                    }
+                }
+            }
+        }
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
index ab07a2d..486ea69 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -282,9 +282,15 @@
 
     @Override
     public List<String> selectProjectsByContainerCode(String containerCode) {
-		String projects = sysLaboratoryContainerDao.selectProjectsByContainerCode(containerCode);
-		if  (projects != null){
-			return Arrays.asList(projects.split(","));
+		List<String> projects = sysLaboratoryContainerDao.selectProjectsByContainerCode(containerCode);
+		if  (projects.size() > 0){
+			List<String> projectList = new ArrayList<>();
+			for (String project : projects){
+				if (StringUtils.isNotBlank(project)){
+					projectList.addAll(Arrays.asList(project.split(",")));
+				}
+			}
+			return projectList;
 		}
 		return null;
     }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java
index e593e8d..4a51065 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java
@@ -76,7 +76,6 @@
 
     @Override
     public void updateSysWarning(SysWarning selectedWarning) throws IOException {
-
         try {
             Map<String,Object> params = new HashMap<>();
             params.put("memo", selectedWarning.getMemo());
@@ -87,7 +86,7 @@
             if (StringUtils.isNotBlank(selectedWarning.getAlarmId()) && StringUtils.isNotBlank(alarmUrl)){
                 JSONObject json=new JSONObject();
                 json.put("dataType", "data");
-                    json.put("id", selectedWarning.getAlarmId());
+                json.put("id", selectedWarning.getAlarmId());
                 CloseableHttpClient client2 = HttpClients.createDefault();
                 HttpPost post2 = new HttpPost(alarmUrl);
                 post2.setHeader("Content-Type", "application/json;charset=UTF-8");
@@ -102,8 +101,7 @@
             }else{
                 logger.info("关联daping的告警id为空 ");
             }
-                this.sysWarningDao.updateSysWarning(params);
-
+            this.sysWarningDao.updateSysWarning(params);
         } catch (DataAccessException e) {
             logger.error(e.getMessage(), e);
             throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
diff --git a/src/main/webapp/WEB-INF/test/test.properties b/src/main/webapp/WEB-INF/test/test.properties
index 230532d..36ee8bd 100644
--- a/src/main/webapp/WEB-INF/test/test.properties
+++ b/src/main/webapp/WEB-INF/test/test.properties
@@ -8,4 +8,4 @@
 institute.url  = http://sinanoaq.com:8050
 institute.app.id = wx81a00e3350861b25
 institute.app.secret = c307d394875af2cbbe25e01b9e43dcb2
-alarm.url =
+alarm.url = http://sinanoaq.com/daping/sendWarnInfo.json
diff --git "a/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx" "b/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx"
index 602a34f..86c5247 100644
--- "a/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx"
+++ "b/\346\231\272\346\205\247\345\256\236\351\252\214\345\256\244\346\216\245\345\217\243.docx"
Binary files differ

--
Gitblit v1.9.2