From 4ac43fa87c355ff4a001110f5de7fe32acfd5289 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期四, 21 一月 2021 10:16:07 +0800
Subject: [PATCH] 添加处理报警接口
---
src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml | 12 +++++
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java | 38 +++++++++++++++++++
src/main/java/com/nanometer/smartlab/service/InterfaceService.java | 4 +
src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java | 6 +--
src/main/java/com/nanometer/smartlab/api/ApiAction.java | 36 ++++++++++++++++++
src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java | 5 ++
src/main/webapp/WEB-INF/test/test.properties | 2
7 files changed, 95 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
index c13f87d..4ce057e 100644
--- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java
+++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -1717,4 +1717,40 @@
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/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/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 7442c85..a2ae000 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -41,6 +41,8 @@
@Resource
private OpeUseFlowService opeUseFlowService;
+ @Resource
+ private SysWarningService sysWarningService;
@Resource(name = "sysWarehouseDao")
SysWarehouseDao sysWarehouseDao;
@@ -1728,4 +1730,40 @@
public JSONObject getUserInfo(JSONObject jsonObject) {
return null;
}
+
+ // 人员违规预警接口
+ @Override
+ public void delalarmperson(JSONObject jsonObject) throws Exception {
+ String containerCode = jsonObject.getString("containerCode");
+ String warningId = jsonObject.getString("warningId");
+ // 货柜条码 containerCode String ○
+ // 报警类别 warningId Integer ○
+ if (StringUtils.isBlank(containerCode) || StringUtils.isBlank(warningId)) {
+ throw new ApiException(ApiStatus.PARAM_NO_EXIST);
+ }
+ Map<String, String> metaMap = new HashMap<>();
+ metaMap.put("groupId", "user_violate_type");
+ metaMap.put("metaKey", warningId);
+
+ 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(warningId) || "2".equals(warningId))) {
+ SysWarning sysWarning = new SysWarning();
+ sysWarning.setId(String.valueOf(sysAlarm.getId()));
+ sysWarning.setStatus(1);
+ sysWarning.setAlarmId(sysAlarm.getRefId());
+ sysWarningService.updateSysWarning(sysWarning);
+ }
+ }
+ }
}
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
--
Gitblit v1.9.2