Quellcode durchsuchen

告警生成工单

lin vor 3 Jahren
Ursprung
Commit
edd80f1363

+ 33 - 8
zoniot-rmcp/zoniot-rmcp-alarm/src/main/java/com/bz/rmcp/alarm/service/impl/DeviceAlarmServiceImpl.java

@@ -1,7 +1,11 @@
 package com.bz.rmcp.alarm.service.impl;
 import java.time.LocalDateTime;
 
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.bz.rmcp.alarm.common.Constants;
 import com.bz.rmcp.alarm.service.DeviceAlarmService;
@@ -9,10 +13,7 @@ import com.bz.rmcp.alarm.service.DeviceMeasuringPointService;
 import com.zcxk.core.common.enums.StatusEnum;
 import com.zcxk.core.common.util.SnowflakeIdWorker;
 import com.zcxk.core.utils.DateUtil;
-import com.zcxk.rmcp.api.dto.alarm.AlarmRuleDto;
-import com.zcxk.rmcp.api.dto.alarm.AlarmRulePageDto;
-import com.zcxk.rmcp.api.dto.alarm.AlarmTypeDto;
-import com.zcxk.rmcp.api.dto.alarm.AlarmTypePageDto;
+import com.zcxk.rmcp.api.dto.alarm.*;
 import com.zcxk.rmcp.api.dto.product.MeasureDataDto;
 import com.zcxk.rmcp.api.enums.DeviceStatusEnum;
 import com.zcxk.rmcp.api.vo.MeasuringPointVo;
@@ -134,6 +135,7 @@ public class DeviceAlarmServiceImpl implements DeviceAlarmService {
                 deviceAlarm.setUpdateBy(Constants.SYS_FLAG);
                 deviceAlarm.setCreateDate(LocalDateTime.now());
                 deviceAlarm.setUpdateDate(LocalDateTime.now());
+                deviceAlarm.setAlarmTypeName(alarmType.getName());
                 deviceAlarmList.add(deviceAlarm);
             }
 
@@ -183,7 +185,7 @@ public class DeviceAlarmServiceImpl implements DeviceAlarmService {
             if(lastErrorList== null || lastErrorList.isEmpty()) {
                 // 无最新告警记录,将告警记录直接入库
                 for(DeviceAlarm  de :deviceAlarmList ) {
-                    rtnList.add(saveNewDeviceAlarm(de));
+                    rtnList.add(saveNewDeviceAlarm(device,de));
                 }
             }
             else {
@@ -200,7 +202,7 @@ public class DeviceAlarmServiceImpl implements DeviceAlarmService {
                     }
                     if(!isSame) {
                         // 告警类型与上次告警类型不同,则直接新增记录
-                        rtnList.add(saveNewDeviceAlarm(de));
+                        rtnList.add(saveNewDeviceAlarm(device,de));
                     }
                     else {
                         // 告警类型与上次告警类型相同
@@ -209,7 +211,7 @@ public class DeviceAlarmServiceImpl implements DeviceAlarmService {
                             rtnList.add(updateExistDeviceAlarm(de, originalError));
                         }else {
                             //上次无告警则新增
-                            rtnList.add(saveNewDeviceAlarm(de));
+                            rtnList.add(saveNewDeviceAlarm(device,de));
                         }
 
                     }
@@ -239,8 +241,31 @@ public class DeviceAlarmServiceImpl implements DeviceAlarmService {
         return newDeviceAlarm;
     }
 
-    private DeviceAlarm saveNewDeviceAlarm(DeviceAlarm deviceAlarm) {
+    private DeviceAlarm saveNewDeviceAlarm(Device device,DeviceAlarm deviceAlarm) {
         deviceAlarmMapper.insertSelective(deviceAlarm);
+
+        String url = "http://10.0.0.62:8081/operation-manager/order/workOrderManage/saveByAlarms";
+
+        log.info("begin create WorkOrder");
+        WorkOrderManageByAlarmDto dto = new WorkOrderManageByAlarmDto();
+        dto.setId(idWorker.nextId());
+        dto.setDeviceName(device.getDeviceNo());
+        dto.setTenantId(device.getTenantId());
+        dto.setTaskDesc(deviceAlarm.getAlarmTypeName());
+        dto.setTaskNo(String.valueOf(idWorker.nextId()));
+        dto.setAddress(device.getAddress());
+        dto.setOrderTime(LocalDateTimeUtil.format(deviceAlarm.getAlarmTime(), DatePattern.NORM_DATETIME_FORMATTER));
+        dto.setCompanyOrgId(device.getCompanyOrgId().toString());
+        dto.setDepartmentOrgId(device.getDeptOrgId().toString());
+        dto.setOrderStatus(0);
+
+        List<WorkOrderManageByAlarmDto> list = ListUtil.toList(dto);
+
+        String json = JSON.toJSONString(list);
+
+        String result = HttpUtil.post(url,json);
+        log.info("end create WorkOrder json = {}, result={}",json,result);
+
         return deviceAlarm;
     }
 

+ 57 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/alarm/WorkOrderManageByAlarmDto.java

@@ -0,0 +1,57 @@
+package com.zcxk.rmcp.api.dto.alarm;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel(value = "报警信息生成的工单信息")
+@Data
+public class WorkOrderManageByAlarmDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "一级场景名称")
+    private Integer parentSceneId;
+
+    @ApiModelProperty(value = "一级场景名称")
+    private String parentSceneName;
+
+    @ApiModelProperty(value = "设备id")
+    private Long deviceId;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "租户id")
+    private String tenantId;
+
+    @ApiModelProperty(value = "工单描述")
+    private String taskDesc;
+
+    @ApiModelProperty(value = "工单编号")
+    private String taskNo;
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "报警时间")
+    private String orderTime;
+
+    @ApiModelProperty(value = "公司机构id")
+    private String companyOrgId;
+
+    @ApiModelProperty(value = "部门机构id")
+    private String departmentOrgId;
+
+    @ApiModelProperty(value = "经纬度")
+    private String geo;
+
+    @ApiModelProperty(value = "0未接单、1进行中、2完成")
+    private Integer orderStatus;
+
+}

+ 3 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/DeviceAlarm.java

@@ -67,4 +67,7 @@ public class DeviceAlarm {
 
     @ApiModelProperty(value="")
     private LocalDateTime updateDate;
+
+    @ApiModelProperty(value="告警类型名称")
+    private String alarmTypeName;
 }