Erweiterungen

This commit is contained in:
Sven committed 2024-02-03 14:41:14 +01:00
1 parent b7d45efecc
commit d622c975c0
9 files changed
+345 -2

No files matched your search

+116
View File
@@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
@@ -14,7 +16,10 @@ import 'package:stadtbote/popups/tasks_popups/scan_barcodes_popup.dart';
import 'package:stadtbote/popups/tasks_popups/signature_popup.dart';
import 'package:stadtbote/popups/tasks_popups/station_notice_popup.dart';
import 'package:stadtbote/popups/tasks_popups/take_photos_popup.dart';
import 'package:stadtbote/protocoll_messages/fin_task_message.dart';
import 'package:stadtbote/protocoll_messages/track_station_message.dart';
import 'package:stadtbote/tools/constants.dart';
import 'package:stadtbote/tools/mqtt_core.dart';
import '../main.dart';
import '../model/task_info.dart';
@@ -244,6 +249,8 @@ class _TaskListPageState extends State<TaskListPage> {
taskInfo.additionalText = dateFormat.format(DateTime.now());
taskInfo.completed = true;
_sendArrivedMessage(taskInfo);
setState(() {});
}
@@ -355,4 +362,113 @@ class _TaskListPageState extends State<TaskListPage> {
return true;
}
_sendArrivedMessage(TaskInfo taskInfo) {
var finTaskMessage = FinTaskMessage();
finTaskMessage.finTask = FinTask();
finTaskMessage.finTask.trId = widget.tour.id;
finTaskMessage.finTask.task = Task();
finTaskMessage.finTask.task.sId = taskInfo.task.sId;
finTaskMessage.finTask.task.time = DateTime.now().toIso8601String();
var position = MyApp.currentPosition;
if (position != null) {
finTaskMessage.finTask.task.pos = FinTaskPos();
finTaskMessage.finTask.task.pos!.lat = position.latitude;
finTaskMessage.finTask.task.pos!.long = position.longitude;
}
MqttCore.instance.publishPayloadMessage("job", finTaskMessage.toJson());
}
/*
var location = App.CurrentLocation;
var root = new JObject();
var finTask = new JObject();
root.Add(new JProperty("finTask", finTask));
finTask.Add(new JProperty("tr_id", _jobTour.Id));
var taskObject = new JObject();
finTask.Add(new JProperty("task", taskObject));
taskObject.Add(new JProperty("s_id", task.SId));
taskObject.Add(new JProperty("time", DateTime.Now.ToString("o")));
if (location != null)
{
var posObject = new JObject
{
new JProperty("lat", location.Latitude),
new JProperty("long", location.Longitude)
};
taskObject.Add(new JProperty("pos", posObject));
}
App.Core.SendJsonMessageAsync("job", root);
*/
_sendTrackStationMessage(TaskInfo taskInfo)
{
var trackStationMessage = TrackStationMessage();
trackStationMessage.sid = taskInfo.task.sId;
trackStationMessage.time = DateTime.now().toIso8601String();
var position = MyApp.currentPosition;
if (position != null) {
trackStationMessage.pos = Pos();
trackStationMessage.pos!.lat = position.latitude;
trackStationMessage.pos!.long = position.latitude;
}
var json = jsonEncode(trackStationMessage.toJson());
MqttCore.instance.publishPayloadMessage("", trackStationMessage.toJson());
}
/*private JObject CreateFinTourMessage()
{
var payloadObject = new JObject();
var finTourObject = new JObject();
payloadObject.Add(new JProperty("fin_tour", finTourObject));
finTourObject.Add(new JProperty("tr_id", _jobTour.Id));
finTourObject.Add(new JProperty("track", CreateTrackObject()));
var tasksArray = new JArray();
finTourObject.Add(new JProperty("tasks", tasksArray));
foreach (var task in _jobTour.Tasks)
{
if (task.Answer != null && task.Answer.Length > 0)
{
var answerObject = (JObject)JsonConvert.DeserializeObject(task.Answer);
tasksArray.Add(answerObject);
}
}
return payloadObject;
}*/
/*Map<String, dynamic> CreateTrackObject()
{
var location = App.CurrentLocation;
var trackObject = new JObject { new JProperty("time", DateTime.Now.ToString("o")) };
if (location != null)
{
var posObject = new JObject();
trackObject.Add(new JProperty("pos", posObject));
posObject.Add(new JProperty("lat", location.Latitude));
posObject.Add(new JProperty("long", location.Longitude));
posObject.Add(new JProperty("acc", location.Accuracy));
}
return trackObject;
}*/
}
@@ -0,0 +1,59 @@
import 'package:isar/isar.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:stadtbote/tools/util.dart';
part 'fin_task_message.g.dart';
@JsonSerializable()
class FinTaskMessage {
late FinTask finTask;
FinTaskMessage();
factory FinTaskMessage.fromJson(Map<String, dynamic> json) => _$FinTaskMessageFromJson(json);
Map<String, dynamic> toJson() => _$FinTaskMessageToJson(this);
}
@JsonSerializable()
class FinTask {
@JsonKey(name: 'tr_id')
late int trId;
late Task task;
FinTask();
factory FinTask.fromJson(Map<String, dynamic> json) => _$FinTaskFromJson(json);
Map<String, dynamic> toJson() => _$FinTaskToJson(this);
}
@JsonSerializable()
class Task {
@JsonKey(name: 's_id')
late int sId;
late String time;
late FinTaskPos? pos;
Task();
factory Task.fromJson(Map<String, dynamic> json) => _$TaskFromJson(json);
Map<String, dynamic> toJson() => _$TaskToJson(this);
}
@JsonSerializable()
class FinTaskPos {
late double lat;
late double long;
FinTaskPos();
factory FinTaskPos.fromJson(Map<String, dynamic> json) => _$FinTaskPosFromJson(json);
Map<String, dynamic> toJson() => _$FinTaskPosToJson(this);
}
@@ -0,0 +1,48 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'fin_task_message.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FinTaskMessage _$FinTaskMessageFromJson(Map<String, dynamic> json) =>
FinTaskMessage()
..finTask = FinTask.fromJson(json['finTask'] as Map<String, dynamic>);
Map<String, dynamic> _$FinTaskMessageToJson(FinTaskMessage instance) =>
<String, dynamic>{
'finTask': instance.finTask,
};
FinTask _$FinTaskFromJson(Map<String, dynamic> json) => FinTask()
..trId = json['tr_id'] as int
..task = Task.fromJson(json['task'] as Map<String, dynamic>);
Map<String, dynamic> _$FinTaskToJson(FinTask instance) => <String, dynamic>{
'tr_id': instance.trId,
'task': instance.task,
};
Task _$TaskFromJson(Map<String, dynamic> json) => Task()
..sId = json['s_id'] as int
..time = json['time'] as String
..pos = json['pos'] == null
? null
: FinTaskPos.fromJson(json['pos'] as Map<String, dynamic>);
Map<String, dynamic> _$TaskToJson(Task instance) => <String, dynamic>{
's_id': instance.sId,
'time': instance.time,
'pos': instance.pos,
};
FinTaskPos _$FinTaskPosFromJson(Map<String, dynamic> json) => FinTaskPos()
..lat = (json['lat'] as num).toDouble()
..long = (json['long'] as num).toDouble();
Map<String, dynamic> _$FinTaskPosToJson(FinTaskPos instance) =>
<String, dynamic>{
'lat': instance.lat,
'long': instance.long,
};
@@ -0,0 +1,34 @@
import 'package:isar/isar.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:stadtbote/tools/util.dart';
part 'finish_tour_message.g.dart';
@JsonSerializable()
class FinishTourMessage {
Id get isarId => Util.fastHash(messageId);
late String recv;
late bool store;
late String messageId;
FinishTourMessage();
factory FinishTourMessage.fromJson(Map<String, dynamic> json) => _$FinishTourMessageFromJson(json);
Map<String, dynamic> toJson() => _$FinishTourMessageToJson(this);
}
/*@JsonSerializable()
class Pos {
@JsonKey(name:'start_session')
late String startSession;
Payload();
factory Payload.fromJson(Map<String, dynamic> json) => _$PayloadFromJson(json);
Map<String, dynamic> toJson() => _$PayloadToJson(this);
}*/
@@ -0,0 +1,20 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'finish_tour_message.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FinishTourMessage _$FinishTourMessageFromJson(Map<String, dynamic> json) =>
FinishTourMessage()
..recv = json['recv'] as String
..store = json['store'] as bool
..messageId = json['messageId'] as String;
Map<String, dynamic> _$FinishTourMessageToJson(FinishTourMessage instance) =>
<String, dynamic>{
'recv': instance.recv,
'store': instance.store,
'messageId': instance.messageId,
};
@@ -0,0 +1,34 @@
import 'package:isar/isar.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:stadtbote/tools/util.dart';
part 'track_station_message.g.dart';
@JsonSerializable()
class TrackStationMessage {
@JsonKey(name: 's_id')
late int sid;
late String time;
late Pos? pos;
TrackStationMessage();
factory TrackStationMessage.fromJson(Map<String, dynamic> json) => _$TrackStationMessageFromJson(json);
Map<String, dynamic> toJson() => _$TrackStationMessageToJson(this);
}
@JsonSerializable()
class Pos {
late double lat;
late double long;
Pos();
factory Pos.fromJson(Map<String, dynamic> json) => _$PosFromJson(json);
Map<String, dynamic> toJson() => _$PosToJson(this);
}
@@ -0,0 +1,32 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'track_station_message.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
TrackStationMessage _$TrackStationMessageFromJson(Map<String, dynamic> json) =>
TrackStationMessage()
..sid = json['s_id'] as int
..time = json['time'] as String
..pos = json['pos'] == null
? null
: Pos.fromJson(json['pos'] as Map<String, dynamic>);
Map<String, dynamic> _$TrackStationMessageToJson(
TrackStationMessage instance) =>
<String, dynamic>{
's_id': instance.sid,
'time': instance.time,
'pos': instance.pos,
};
Pos _$PosFromJson(Map<String, dynamic> json) => Pos()
..lat = (json['lat'] as num).toDouble()
..long = (json['long'] as num).toDouble();
Map<String, dynamic> _$PosToJson(Pos instance) => <String, dynamic>{
'lat': instance.lat,
'long': instance.long,
};
+1 -1
View File
@@ -168,7 +168,7 @@ class MqttCore {
break;
case 'job_del':
_jobDeleteReceived(payloadData);
//_jobDeleteReceived(payloadData);
break;
case 'sync_request':
+1 -1
View File
@@ -72,7 +72,7 @@ class Util {
static logInfo(String message) {
if (kDebugMode) {
print('Message: $message');
print(message);
}
}