|
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.persagy.common.criteria.CriteriaUtils;
|
|
|
import com.persagy.common.criteria.JacksonCriteria;
|
|
|
import com.persagy.common.date.DateUtils;
|
|
|
+import com.persagy.common.json.JacksonMapper;
|
|
|
import com.persagy.common.web.MapResponse;
|
|
|
import com.persagy.common.web.PagedResponse;
|
|
|
import com.persagy.dmp.alarm.entity.AlarmRecord;
|
|
@@ -30,42 +31,42 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class AlarmRecordService extends AlarmBaseService {
|
|
|
|
|
|
- @Autowired
|
|
|
- private AlarmRecordRepository alarmRecordRepository;
|
|
|
- @Autowired
|
|
|
- private AlarmLogService alarmLogService;
|
|
|
- @Autowired
|
|
|
- private CriteriaUtils criteriaUtils;
|
|
|
+ @Autowired
|
|
|
+ private AlarmRecordRepository alarmRecordRepository;
|
|
|
+ @Autowired
|
|
|
+ private AlarmLogService alarmLogService;
|
|
|
+ @Autowired
|
|
|
+ private CriteriaUtils criteriaUtils;
|
|
|
|
|
|
- private List<BooleanExpression> parse(ObjectNode criteria) {
|
|
|
-
|
|
|
- return null;
|
|
|
- }
|
|
|
+ private List<BooleanExpression> parse(ObjectNode criteria) {
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- public PagedResponse<AlarmRecordModel> query(JacksonCriteria criteria) {
|
|
|
- PagedResponse<AlarmRecord> resp = criteriaUtils.query(QAlarmRecord.alarmRecord, this::parse, criteria);
|
|
|
- PagedResponse<AlarmRecordModel> result = new PagedResponse<>();
|
|
|
- result.setCount(resp.getCount());
|
|
|
- List<AlarmRecord> dataList = resp.getData();
|
|
|
-
|
|
|
- Set<String> withColumns = criteria.getWithColumns();
|
|
|
- if (dataList != null && dataList.size() > 0) {
|
|
|
- List<AlarmRecordModel> collect = dataList.stream().map(entity -> {
|
|
|
- AlarmRecordModel model = entity.toModel();
|
|
|
- if (withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
|
|
|
- Date ignoreAlarmTime = alarmLogService.getIgnoreAlarmTime(model.getId());
|
|
|
- model.setIgnoreTime(ignoreAlarmTime);
|
|
|
- }
|
|
|
- if (withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
|
|
|
- Date treatEndTime = alarmLogService.getTreatEndTime(model.getId());
|
|
|
- model.setTreatEndTime(treatEndTime);
|
|
|
- }
|
|
|
- return model;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- result.setData(collect);
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
+ public PagedResponse<AlarmRecordModel> query(JacksonCriteria criteria) {
|
|
|
+ PagedResponse<AlarmRecord> resp = criteriaUtils.query(QAlarmRecord.alarmRecord, this::parse, criteria);
|
|
|
+ PagedResponse<AlarmRecordModel> result = new PagedResponse<>();
|
|
|
+ result.setCount(resp.getCount());
|
|
|
+ List<AlarmRecord> dataList = resp.getData();
|
|
|
+
|
|
|
+ Set<String> withColumns = criteria.getWithColumns();
|
|
|
+ if (dataList != null && dataList.size() > 0) {
|
|
|
+ List<AlarmRecordModel> collect = dataList.stream().map(entity -> {
|
|
|
+ AlarmRecordModel model = entity.toModel();
|
|
|
+ if (withColumns != null && withColumns.contains(EnumAlarmRecordWithColumns.ignoreTime.name())) {
|
|
|
+ Date ignoreAlarmTime = alarmLogService.getIgnoreAlarmTime(model.getId());
|
|
|
+ model.setIgnoreTime(ignoreAlarmTime);
|
|
|
+ }
|
|
|
+ if (withColumns != null && withColumns.contains(EnumAlarmRecordWithColumns.treatEndTime.name())) {
|
|
|
+ Date treatEndTime = alarmLogService.getTreatEndTime(model.getId());
|
|
|
+ model.setTreatEndTime(treatEndTime);
|
|
|
+ }
|
|
|
+ return model;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ result.setData(collect);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
@Transactional
|
|
|
public MapResponse create(AlarmRecordModel param) {
|
|
@@ -75,173 +76,179 @@ public class AlarmRecordService extends AlarmBaseService {
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
- String checkResult = CheckRequiredParam.check(param, "itemCode", "objId", "level");;
|
|
|
+ String checkResult = CheckRequiredParam.check(param, "itemCode", "objId", "level");
|
|
|
+ ;
|
|
|
if (!StringUtils.isEmpty(checkResult)) {
|
|
|
- response.setFail(checkResult);
|
|
|
- return response;
|
|
|
- }
|
|
|
+ response.setFail(checkResult);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
|
|
|
String id = UUID.randomUUID().toString();
|
|
|
|
|
|
if (!StringUtils.isEmpty(param.getId())) {
|
|
|
- Optional<AlarmRecord> byIdResult = alarmRecordRepository.findById(param.getId());
|
|
|
- if (byIdResult.isPresent()) {
|
|
|
- response.setFail("已存在相同id的报警记录!创建失败!");
|
|
|
- } else {
|
|
|
- id = param.getId();
|
|
|
- }
|
|
|
- }
|
|
|
- AlarmRecord entity = AlarmRecord.fromModel(param);
|
|
|
+ Optional<AlarmRecord> byIdResult = alarmRecordRepository.findById(param.getId());
|
|
|
+ if (byIdResult.isPresent()) {
|
|
|
+ response.setFail("已存在相同id的报警记录!创建失败!");
|
|
|
+ return response;
|
|
|
+ } else {
|
|
|
+ id = param.getId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ AlarmRecord entity = AlarmRecord.fromModel(param);
|
|
|
entity.setId(id);
|
|
|
entity.setCreateUser(alarmParam.userId);
|
|
|
- entity.setCreateTime(new Date());
|
|
|
+ if (param.getCreateTime() != null) {
|
|
|
+ entity.setCreateTime(param.getCreateTime());
|
|
|
+ } else {
|
|
|
+ entity.setCreateTime(new Date());
|
|
|
+ }
|
|
|
entity.setValid(1);
|
|
|
entity.setProjectId(alarmParam.projectId);
|
|
|
entity.setGroupCode(alarmParam.groupCode);
|
|
|
alarmRecordRepository.save(entity);
|
|
|
response.add("id", entity.getId());
|
|
|
-
|
|
|
- DmpMessage msg = new DmpMessage();
|
|
|
- msg.setMid(UUID.randomUUID().toString());
|
|
|
- msg.setType(EnumAlarmMessageType.ALARM_RECORD_CREATE.getValue());
|
|
|
- msg.setGroupCode(DmpParameterStorage.getGroupCode());
|
|
|
- msg.setProjectId(DmpParameterStorage.getProjectId());
|
|
|
- msg.setTargetId(entity.getId());
|
|
|
- msg.add("obj", JSONObject.toJSONString(entity));
|
|
|
- msg.setAppId(DmpParameterStorage.getAppId());
|
|
|
- msg.setSendTime(DateUtils.format(new Date()));
|
|
|
- response.add(msg);
|
|
|
+
|
|
|
+ DmpMessage msg = new DmpMessage();
|
|
|
+ msg.setMid(UUID.randomUUID().toString());
|
|
|
+ msg.setType(EnumAlarmMessageType.ALARM_RECORD_CREATE.getValue());
|
|
|
+ msg.setGroupCode(DmpParameterStorage.getGroupCode());
|
|
|
+ msg.setProjectId(DmpParameterStorage.getProjectId());
|
|
|
+ msg.setTargetId(entity.getId());
|
|
|
+ msg.add("obj", JacksonMapper.toSimpleJson(entity));
|
|
|
+ msg.setAppId(DmpParameterStorage.getAppId());
|
|
|
+ msg.setSendTime(DateUtils.format(new Date()));
|
|
|
+ response.add(msg);
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
- public AlarmRecord get(String id) {
|
|
|
- Optional<AlarmRecord> result = alarmRecordRepository.findById(id);
|
|
|
- return result.orElse(null);
|
|
|
- }
|
|
|
+ public AlarmRecord get(String id) {
|
|
|
+ Optional<AlarmRecord> result = alarmRecordRepository.findById(id);
|
|
|
+ return result.orElse(null);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
-
|
|
|
- * @description: 初始化日志对象
|
|
|
- * @param: param 报警记录参数
|
|
|
- * @return: com.persagy.dmp.alarm.model.AlarmLogModel
|
|
|
- * @exception:
|
|
|
- * @author: lixing
|
|
|
- * @company: Persagy Technology Co.,Ltd
|
|
|
- * @since: 2020/12/8 3:07 下午
|
|
|
- * @version: V1.0
|
|
|
- */
|
|
|
- private AlarmLogModel initAlarmLogModel(AlarmRecordModel param) {
|
|
|
- AlarmLogModel alarmLogModel = new AlarmLogModel();
|
|
|
- alarmLogModel.setRecordId(param.getId());
|
|
|
- alarmLogModel.setCreateTime(new Date());
|
|
|
- alarmLogModel.setCreateUser(DmpParameterStorage.getUserId());
|
|
|
- alarmLogModel.setProjectId(DmpParameterStorage.getProjectId());
|
|
|
- alarmLogModel.setGroupCode(DmpParameterStorage.getGroupCode());
|
|
|
- return alarmLogModel;
|
|
|
- }
|
|
|
+
|
|
|
+ * @description: 初始化日志对象
|
|
|
+ * @param: param 报警记录参数
|
|
|
+ * @return: com.persagy.dmp.alarm.model.AlarmLogModel
|
|
|
+ * @exception:
|
|
|
+ * @author: lixing
|
|
|
+ * @company: Persagy Technology Co.,Ltd
|
|
|
+ * @since: 2020/12/8 3:07 下午
|
|
|
+ * @version: V1.0
|
|
|
+ */
|
|
|
+ private AlarmLogModel initAlarmLogModel(AlarmRecordModel param) {
|
|
|
+ AlarmLogModel alarmLogModel = new AlarmLogModel();
|
|
|
+ alarmLogModel.setRecordId(param.getId());
|
|
|
+ alarmLogModel.setCreateTime(new Date());
|
|
|
+ alarmLogModel.setCreateUser(DmpParameterStorage.getUserId());
|
|
|
+ alarmLogModel.setProjectId(DmpParameterStorage.getProjectId());
|
|
|
+ alarmLogModel.setGroupCode(DmpParameterStorage.getGroupCode());
|
|
|
+ return alarmLogModel;
|
|
|
+ }
|
|
|
|
|
|
- @Transactional
|
|
|
- public MapResponse update(AlarmRecordModel param) {
|
|
|
- MapResponse response = new MapResponse();
|
|
|
- AlarmRecord alarmRecord = get(param.getId());
|
|
|
- if (alarmRecord == null) {
|
|
|
- response.setFail("无法获取到要更新的数据!");
|
|
|
- return response;
|
|
|
- }
|
|
|
- AlarmParam alarmParam = prepareParam(response);
|
|
|
- if (alarmParam == null) {
|
|
|
- return response;
|
|
|
- }
|
|
|
- if (param.getName() != null && !param.getName().isEmpty()) {
|
|
|
- alarmRecord.setName(param.getName());
|
|
|
- }
|
|
|
- if (param.getRemark() != null && !param.getRemark().isEmpty()) {
|
|
|
- alarmRecord.setRemark(param.getRemark());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getState() != null) {
|
|
|
- if (!param.getState().equals(alarmRecord.getState())) {
|
|
|
- AlarmLogModel alarmLogModel = initAlarmLogModel(param);
|
|
|
- alarmLogModel.setType(EnumAlarmLogType.ALARMSTATE);
|
|
|
- alarmLogModel.setNature(alarmRecord.getNature());
|
|
|
- alarmLogModel.setBefore(alarmRecord.getState());
|
|
|
- alarmLogModel.setAfter(param.getState());
|
|
|
- alarmLogService.create(alarmLogModel);
|
|
|
- }
|
|
|
- alarmRecord.setState(param.getState());
|
|
|
- }
|
|
|
- if (param.getNature() != null) {
|
|
|
- alarmRecord.setNature(param.getNature());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getTreatMode() != null) {
|
|
|
- if (!param.getTreatMode().equals(alarmRecord.getTreatMode())) {
|
|
|
- AlarmLogModel alarmLogModel = initAlarmLogModel(param);
|
|
|
- alarmLogModel.setType(EnumAlarmLogType.TREATMODE);
|
|
|
- alarmLogModel.setNature(alarmRecord.getNature());
|
|
|
- alarmLogModel.setBefore(alarmRecord.getTreatMode());
|
|
|
- alarmLogModel.setAfter(param.getTreatMode());
|
|
|
- alarmLogService.create(alarmLogModel);
|
|
|
- }
|
|
|
- alarmRecord.setTreatMode(param.getTreatMode());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getTreatState() != null) {
|
|
|
- if (!param.getTreatState().equals(alarmRecord.getTreatState())) {
|
|
|
- AlarmLogModel alarmLogModel = initAlarmLogModel(param);
|
|
|
- alarmLogModel.setType(EnumAlarmLogType.TREATSTATE);
|
|
|
- alarmLogModel.setNature(alarmRecord.getNature());
|
|
|
- alarmLogModel.setBefore(alarmRecord.getTreatState());
|
|
|
- alarmLogModel.setAfter(param.getTreatState());
|
|
|
- alarmLogService.create(alarmLogModel);
|
|
|
- }
|
|
|
- alarmRecord.setTreatState(param.getTreatState());
|
|
|
- }
|
|
|
+ @Transactional
|
|
|
+ public MapResponse update(AlarmRecordModel param) {
|
|
|
+ MapResponse response = new MapResponse();
|
|
|
+ AlarmRecord alarmRecord = get(param.getId());
|
|
|
+ if (alarmRecord == null) {
|
|
|
+ response.setFail("无法获取到要更新的数据!");
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ AlarmParam alarmParam = prepareParam(response);
|
|
|
+ if (alarmParam == null) {
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ if (param.getName() != null && !param.getName().isEmpty()) {
|
|
|
+ alarmRecord.setName(param.getName());
|
|
|
+ }
|
|
|
+ if (param.getRemark() != null && !param.getRemark().isEmpty()) {
|
|
|
+ alarmRecord.setRemark(param.getRemark());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getState() != null) {
|
|
|
+ if (!param.getState().equals(alarmRecord.getState())) {
|
|
|
+ AlarmLogModel alarmLogModel = initAlarmLogModel(param);
|
|
|
+ alarmLogModel.setType(EnumAlarmLogType.ALARMSTATE);
|
|
|
+ alarmLogModel.setNature(alarmRecord.getNature());
|
|
|
+ alarmLogModel.setBefore(alarmRecord.getState());
|
|
|
+ alarmLogModel.setAfter(param.getState());
|
|
|
+ alarmLogService.create(alarmLogModel);
|
|
|
+ }
|
|
|
+ alarmRecord.setState(param.getState());
|
|
|
+ }
|
|
|
+ if (param.getNature() != null) {
|
|
|
+ alarmRecord.setNature(param.getNature());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getTreatMode() != null) {
|
|
|
+ if (!param.getTreatMode().equals(alarmRecord.getTreatMode())) {
|
|
|
+ AlarmLogModel alarmLogModel = initAlarmLogModel(param);
|
|
|
+ alarmLogModel.setType(EnumAlarmLogType.TREATMODE);
|
|
|
+ alarmLogModel.setNature(alarmRecord.getNature());
|
|
|
+ alarmLogModel.setBefore(alarmRecord.getTreatMode());
|
|
|
+ alarmLogModel.setAfter(param.getTreatMode());
|
|
|
+ alarmLogService.create(alarmLogModel);
|
|
|
+ }
|
|
|
+ alarmRecord.setTreatMode(param.getTreatMode());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getTreatState() != null) {
|
|
|
+ if (!param.getTreatState().equals(alarmRecord.getTreatState())) {
|
|
|
+ AlarmLogModel alarmLogModel = initAlarmLogModel(param);
|
|
|
+ alarmLogModel.setType(EnumAlarmLogType.TREATSTATE);
|
|
|
+ alarmLogModel.setNature(alarmRecord.getNature());
|
|
|
+ alarmLogModel.setBefore(alarmRecord.getTreatState());
|
|
|
+ alarmLogModel.setAfter(param.getTreatState());
|
|
|
+ alarmLogService.create(alarmLogModel);
|
|
|
+ }
|
|
|
+ alarmRecord.setTreatState(param.getTreatState());
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- if (param.getEndInfo() != null) {
|
|
|
- alarmRecord.setEndInfo(param.getEndInfo());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getEndTime() != null) {
|
|
|
- alarmRecord.setEndTime(param.getEndTime());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getOrderId() != null) {
|
|
|
- alarmRecord.setOrderId(param.getOrderId());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getOrderState() != null) {
|
|
|
- alarmRecord.setOrderState(param.getOrderState());
|
|
|
- }
|
|
|
-
|
|
|
- if (param.getSupplement() != null) {
|
|
|
- alarmRecord.setSupplement(param.getSupplement());
|
|
|
- }
|
|
|
- alarmRecord.setUpdateUser(alarmParam.userId);
|
|
|
- alarmRecord.setUpdateTime(new Date());
|
|
|
- alarmRecordRepository.save(alarmRecord);
|
|
|
- response.add("id", alarmRecord.getId());
|
|
|
-
|
|
|
- DmpMessage msg = new DmpMessage();
|
|
|
- msg.setMid(UUID.randomUUID().toString());
|
|
|
- msg.setType(EnumAlarmMessageType.ALARM_RECORD_UPDATE.getValue());
|
|
|
- msg.setGroupCode(DmpParameterStorage.getGroupCode());
|
|
|
- msg.setProjectId(DmpParameterStorage.getProjectId());
|
|
|
- msg.setTargetId(alarmRecord.getId());
|
|
|
- msg.add("obj", JSONObject.toJSONString(alarmRecord));
|
|
|
- msg.setAppId(DmpParameterStorage.getAppId());
|
|
|
- msg.setSendTime(DateUtils.format(new Date()));
|
|
|
- response.add(msg);
|
|
|
- return response;
|
|
|
- }
|
|
|
+
|
|
|
+ if (param.getEndInfo() != null) {
|
|
|
+ alarmRecord.setEndInfo(param.getEndInfo());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getEndTime() != null) {
|
|
|
+ alarmRecord.setEndTime(param.getEndTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getOrderId() != null) {
|
|
|
+ alarmRecord.setOrderId(param.getOrderId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getOrderState() != null) {
|
|
|
+ alarmRecord.setOrderState(param.getOrderState());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getSupplement() != null) {
|
|
|
+ alarmRecord.setSupplement(param.getSupplement());
|
|
|
+ }
|
|
|
+ alarmRecord.setUpdateUser(alarmParam.userId);
|
|
|
+ alarmRecord.setUpdateTime(new Date());
|
|
|
+ alarmRecordRepository.save(alarmRecord);
|
|
|
+ response.add("id", alarmRecord.getId());
|
|
|
+
|
|
|
+ DmpMessage msg = new DmpMessage();
|
|
|
+ msg.setMid(UUID.randomUUID().toString());
|
|
|
+ msg.setType(EnumAlarmMessageType.ALARM_RECORD_UPDATE.getValue());
|
|
|
+ msg.setGroupCode(DmpParameterStorage.getGroupCode());
|
|
|
+ msg.setProjectId(DmpParameterStorage.getProjectId());
|
|
|
+ msg.setTargetId(alarmRecord.getId());
|
|
|
+ msg.add("obj", JSONObject.toJSONString(alarmRecord));
|
|
|
+ msg.setAppId(DmpParameterStorage.getAppId());
|
|
|
+ msg.setSendTime(DateUtils.format(new Date()));
|
|
|
+ response.add(msg);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|