|
@@ -1,137 +0,0 @@
|
|
|
-package com.persagy.apm.energyalarmstarter.alarmdata.service;
|
|
|
-
|
|
|
-import com.google.common.collect.Lists;
|
|
|
-import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
|
|
|
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmrecord.QueryAlarmRecordDTO;
|
|
|
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmrecord.UpdateAlarmRecordDTO;
|
|
|
-import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmRecordItem;
|
|
|
-import com.persagy.apm.energyalarmstarter.alarmdata.mq.model.OrderStateMessage;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-/**
|
|
|
- * @description: 工单状态变化处理
|
|
|
- * @author: lixing
|
|
|
- * @company: Persagy Technology Co.,Ltd
|
|
|
- * @since: 2020/12/16 9:45 上午
|
|
|
- * @version: V1.0
|
|
|
- **/
|
|
|
-@Service
|
|
|
-public class OrderStateChangeService {
|
|
|
- @Autowired
|
|
|
- private AlarmRecordServiceImpl alarmRecordService;
|
|
|
-
|
|
|
- /**
|
|
|
- * 当工单状态变化时,更新报警记录
|
|
|
- *
|
|
|
- * @param orderStateMessage 工单状态变化消息
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021/11/15 12:08 下午
|
|
|
- */
|
|
|
- public void updateAlarmWhenOrderStateChange(OrderStateMessage orderStateMessage) throws Exception {
|
|
|
- // 根据工单状态获取对应的报警处理状态
|
|
|
- Integer alarmTreatState = getAlarmTreatState(orderStateMessage.getOrder_state());
|
|
|
- if (alarmTreatState == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // 根据工单id获取要修改的报警记录
|
|
|
- List<AlarmRecordItem> alarmRecords = getAlarmRecordsByOrderId(orderStateMessage.getOrder_id());
|
|
|
- if (CollectionUtils.isEmpty(alarmRecords)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // 更新报警记录状态
|
|
|
- for (AlarmRecordItem alarmRecord : alarmRecords) {
|
|
|
- // 如果报警记录中工单状态已经为处理完成,不再更新报警
|
|
|
- if (alarmRecord.getOrderState() != null && workOrderDone(Integer.valueOf(alarmRecord.getOrderState()))) {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- UpdateAlarmRecordDTO updateAlarmRecordDTO = new UpdateAlarmRecordDTO();
|
|
|
- // url参数设置为默认值
|
|
|
- updateAlarmRecordDTO.setDefaultUrlParam();
|
|
|
- updateAlarmRecordDTO.setTreatState(alarmTreatState);
|
|
|
- updateAlarmRecordDTO.setOrderState(String.valueOf(orderStateMessage.getOrder_state()));
|
|
|
- alarmRecordService.update(updateAlarmRecordDTO);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 判断工单状态是否为已完成
|
|
|
- *
|
|
|
- * @param workOrderState
|
|
|
- * @return boolean
|
|
|
- * @throws
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021/9/14 6:02 下午
|
|
|
- */
|
|
|
- private boolean workOrderDone(Integer workOrderState) {
|
|
|
- if (workOrderState == null) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- switch (workOrderState) {
|
|
|
- case 7:
|
|
|
- case 8:
|
|
|
- case 9:
|
|
|
- case 10:
|
|
|
- return true;
|
|
|
- default:
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 根据工单id获取对应的报警记录
|
|
|
- *
|
|
|
- * @param orderId 工单id
|
|
|
- * @return 报警记录列表
|
|
|
- * @author lixing
|
|
|
- * @version V1.0 2021/11/15 12:01 下午
|
|
|
- */
|
|
|
- private List<AlarmRecordItem> getAlarmRecordsByOrderId(String orderId) throws Exception {
|
|
|
- QueryAlarmRecordDTO queryAlarmRecordDTO = new QueryAlarmRecordDTO();
|
|
|
- // url参数设置为默认值
|
|
|
- queryAlarmRecordDTO.setDefaultUrlParam();
|
|
|
- // 查询条件
|
|
|
- queryAlarmRecordDTO.setOrderId(Lists.newArrayList(orderId));
|
|
|
- DmpResult<List<AlarmRecordItem>> queryResult = alarmRecordService.query(queryAlarmRecordDTO);
|
|
|
-
|
|
|
- String resultSuccess = "success";
|
|
|
- if (resultSuccess.equals(queryResult.getResult())) {
|
|
|
- return queryResult.getData();
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @description: 根据工单状态获取对应的报警处理状态
|
|
|
- * @param: orderState 工单状态
|
|
|
- * @return: java.lang.Integer
|
|
|
- * @exception:
|
|
|
- * @author: lixing
|
|
|
- * @company: Persagy Technology Co.,Ltd
|
|
|
- * @since: 2020/12/16 9:58 上午
|
|
|
- * @version: V1.0
|
|
|
- */
|
|
|
- public Integer getAlarmTreatState(int orderState) {
|
|
|
- int handling = 2, done = 3;
|
|
|
- switch (orderState) {
|
|
|
- case 4:
|
|
|
- case 5:
|
|
|
- case 6:
|
|
|
- return handling;
|
|
|
- case 7:
|
|
|
- case 8:
|
|
|
- case 9:
|
|
|
- case 10:
|
|
|
- return done;
|
|
|
- default:
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|