李宇
2021-01-21 4ac43fa87c355ff4a001110f5de7fe32acfd5289
添加处理报警接口
已修改7个文件
103 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/api/ApiAction.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/InterfaceService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/WEB-INF/test/test.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}
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);
}
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>
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;
}
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);
            }
        }
    }
}
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);
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