You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.3 KiB
106 lines
3.3 KiB
import 'package:timemanagerapp/entity/ScheduleForm.dart';
|
|
|
|
import '../database/dao/WorkDao.dart';
|
|
import '../entity/Work.dart';
|
|
import '../setting/Setting.dart';
|
|
import '../util/dataUtil.dart';
|
|
import 'NetWorkController.dart';
|
|
|
|
class WorkController {
|
|
IdGenerator idGenerator = IdGenerator();
|
|
List<Work> WorkList = []; //实时维护的courseList缓存
|
|
NetWorkController netWorkController = NetWorkController();
|
|
|
|
DateTime termstartdate = Setting.startdate; //Setting.getStartDate();
|
|
|
|
Future<List<Work>> getWorks() async {
|
|
//todo http获取
|
|
// List<Map<String, dynamic>> WorkMaps = await WorkDao().getWorks();
|
|
// List<Work> Works = []; // 用于存储转换后的Work对象列表
|
|
//
|
|
// for (var WorkMap in WorkMaps) {
|
|
// // 使用Work类的构造函数从Map创建Work对象
|
|
// Work work = Work(
|
|
// id: WorkMap['id'],
|
|
// userId: WorkMap['userId'],
|
|
// content: WorkMap['content'],
|
|
// WorkId: WorkMap['WorkId'],
|
|
// name: WorkMap['name'],
|
|
// startTime: DateTime.parse(WorkMap['startTime']),
|
|
// endTime: DateTime.parse(WorkMap['endTime']),
|
|
// );
|
|
// Works.add(Work);
|
|
// }
|
|
// WorkList = Works; // 将Work对象添加到列表中
|
|
return WorkList;
|
|
}
|
|
|
|
//addscheduleForm
|
|
Future<void> addScheduleForm(ScheduleForm scheduleForm,int teamId) async {
|
|
List<Work> WorkListToInsert = [];
|
|
int allWorkId = await idGenerator.generateId();
|
|
for (int week = scheduleForm.getStartWeek; week <= scheduleForm.getEndWeek; week++) {
|
|
for (int day in scheduleForm.selectedDays) {
|
|
// 计算具体的日期和时间
|
|
final startDate = termstartdate.add(Duration(
|
|
days: (7 * (week - 1) + day! - 1),
|
|
hours: scheduleForm.getStartTime.hour,
|
|
minutes: scheduleForm.getStartTime.minute
|
|
));
|
|
|
|
final endDate = termstartdate.add(Duration(
|
|
days: (7 * (week - 1) + day! - 1),
|
|
hours: scheduleForm.getEndTime.hour,
|
|
minutes: scheduleForm.getEndTime.minute,
|
|
));
|
|
Work work = Work(
|
|
id: await idGenerator.generateId(),
|
|
name: scheduleForm.getName,
|
|
workId: allWorkId,
|
|
userId: Setting.user!.getId!,
|
|
status: "未完成",
|
|
content: scheduleForm.getContent,
|
|
teamId: teamId,
|
|
functionaryId: 0, //???
|
|
endTime: endDate,
|
|
startTime: startDate,
|
|
);
|
|
|
|
WorkListToInsert.add(work);
|
|
}
|
|
await insertWorkList(WorkListToInsert);
|
|
}
|
|
}
|
|
|
|
|
|
// Future<int> insertWork(Work Work) async {
|
|
// return await WorkDao().insertWork(Work);
|
|
// }
|
|
//
|
|
Future<int> insertWorkList(List<Work> WorkList) async {
|
|
int result = 0;
|
|
// for (Work Work in WorkList) {
|
|
// result += await WorkDao().insertWork(Work);
|
|
// }
|
|
return result;
|
|
}
|
|
//
|
|
// //delete
|
|
// Future<int> deleteWorkByid(int id) async {
|
|
// return await WorkDao().deleteWorkByid(id);
|
|
// }
|
|
//
|
|
// Future<int> deleteWorkByWorkid(int Workid) async {
|
|
// return await WorkDao().deleteWorkByWorkid(Workid);
|
|
// }
|
|
//
|
|
// Future<int> deleteAllWorks() async {
|
|
// return await WorkDao().deleteAllWorks();
|
|
// }
|
|
//
|
|
// //update
|
|
// Future<int> updateWork(Work Work) async {
|
|
// return await WorkDao().updateWork(Work);
|
|
// }
|
|
|
|
} |