货柜预警接口:alarm
字典:alarm_type 01 主电掉电,备电工作
显示:名称+地点+柜号+内容
已修改3个文件
77 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/api/ApiAction.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -426,7 +426,7 @@
        return retJSON.toJSONString();
    }
    // 报警情况接口(warning)
    // 报警情况接口(warning)  货柜预警接口
    @ResponseBody
    @RequestMapping(value = "/alarm")
    public String alarm(HttpServletRequest request) throws IOException {
src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -240,6 +240,7 @@
  <select id="selectLocationByContainerCode" parameterType="java.lang.String" resultType="java.util.Map">
     SELECT
     sl.name,
  CONCAT(sl.location1,"-",sl.location2) location,sl.bar_code barCode
  FROM sys_laboratory_container slc
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -1288,6 +1288,7 @@
         }
    }
    //货柜预警接口
    @Override
    @Transactional(propagation = Propagation.REQUIRED)
    public void alarm(JSONObject jsonObject) throws ApiException {
@@ -1315,7 +1316,7 @@
            String containerCode = dataJson.getString("containerCode");
            //check containerCode是否存在
            SysLaboratoryContainer sysLaboratoryContainer = sysLaboratoryContainerDao
            SysLaboratoryContainer LaboratoryContainer = sysLaboratoryContainerDao
                    .getSysLaboratoryContainerByContainerCode(containerCode);
            if (Objects.isNull(sysLaboratoryContainer) == true) {
                SysWarehouseContainer container = sysWarehouseContainerDao
@@ -1354,6 +1355,77 @@
            }
            sysAlarmDao.insertSysAlarm(sysAlarm);
            try {
                if (enable && "01".equals(warningId)) {
                    SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(LaboratoryContainer.getLaboratoryId());
                    String project = sysLaboratory.getProject();
                    //2.根据Lab的课题组判断人员
                    List<Map> personsInCharge = null;
                    if (StringUtils.isBlank(project)) {
                        //没有课题组就是实验室部门下的负责人
                        personsInCharge = sysLaboratoryContainer.getContainerPersonInCharge(containerCode);
                    } else {
                        //有课题组就是 所有课题组下的人员负责人
                        personsInCharge = sysLaboratoryService.getPersonInChargeByProjects(project);
                    }
                    Map param = new HashMap();
                    param.put("groupId", "securityManager");
                    List<BaseMeta> managers = baseMetaDao.getBaseMetaList(param);
                    StringBuffer phones = new StringBuffer();
                    //实验室负责人手机号
                    if (personsInCharge != null && personsInCharge.size() > 0) {
                        personsInCharge.forEach(person -> {
                            Object phone = person.get("phone");
                            if (phone != null && !"".equals(phone)) {
                                phones.append(phone);
                                phones.append(",");
                            }
                        });
                    }
                    //所及负责人手机号
                    if (managers != null && managers.size() > 0) {
                        managers.forEach(manager -> {
                            String phone = manager.getMetaValue();
                            if (phone != null && !"".equals(phone)) {
                                phones.append(phone);
                                phones.append(",");
                            }
                        });
                    }
                    if (phones.length() > 0) {
                        phones.deleteCharAt(phones.length() - 1);
                    }
                    Map location = sysLaboratoryContainer.selectLocationByContainerCode(containerCode);
                    String messageFormat = "名称:%s,具体地点:%s,柜号:%s,";
                    String content = String.format(messageFormat, location.get("name"),location.get("location"), containerCode);
                    String suffix = String.format("?head=%s&signature=%s&content=%s&telnumber=%s", head, signature, content + baseMetaList.get(0).getMetaValue(), phones.toString().replace(" ", ""));
                    CloseableHttpClient client = HttpClients.createDefault();
                    HttpPost post = new HttpPost(url + suffix);
                    post.setHeader("Content-Type", "application/json;charset=UTF-8");
                    CloseableHttpResponse response = client.execute(post);
                    String resData = EntityUtils.toString(response.getEntity(), "UTF-8");
                    client.close();
                    JSONObject res = JSONObject.parseObject(resData);
                    if ("200".equals(res.getString("code")) && phones.length() > 0) {
                        String memo = String.format("短信已发送[%s]", phones);
                    }
                    logger.info(resData);
                }
            } catch (Exception e) {
                e.printStackTrace();
                logger.warn(e);
            }
            //增加发送短信接口 key:01 value:主电掉电,备电工作
//
//            Integer warningPoint = dataJson.getInteger("warningPoint");
//            if(warningPoint == null){