一次大的提交
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:maibu_satabot_v2/features/v2/work_order/domain/entities/work_order_entity.dart';
|
||||
import 'package:maibu_satabot_v2/features/v2/work_order/domain/usecases/work_order_usecases.dart';
|
||||
import 'package:maibu_satabot_v2/features/v2/work_order/presentation/states/work_order_state.dart';
|
||||
|
||||
class WorkOrderCubit extends Cubit<WorkOrderState> {
|
||||
final GetWorkOrderListUseCase _getWorkOrderListUseCase;
|
||||
final GetWorkOrderDetailUseCase _getWorkOrderDetailUseCase;
|
||||
final DispatchWorkOrderUseCase _dispatchWorkOrderUseCase;
|
||||
final SuspendWorkOrderUseCase _suspendWorkOrderUseCase;
|
||||
final CompleteWorkOrderUseCase _completeWorkOrderUseCase;
|
||||
final StartWorkOrderUseCase _startWorkOrderUseCase;
|
||||
|
||||
WorkOrderCubit({
|
||||
required GetWorkOrderListUseCase getWorkOrderListUseCase,
|
||||
required GetWorkOrderDetailUseCase getWorkOrderDetailUseCase,
|
||||
required DispatchWorkOrderUseCase dispatchWorkOrderUseCase,
|
||||
required SuspendWorkOrderUseCase suspendWorkOrderUseCase,
|
||||
required CompleteWorkOrderUseCase completeWorkOrderUseCase,
|
||||
required StartWorkOrderUseCase startWorkOrderUseCase,
|
||||
}) : _getWorkOrderListUseCase = getWorkOrderListUseCase,
|
||||
_getWorkOrderDetailUseCase = getWorkOrderDetailUseCase,
|
||||
_dispatchWorkOrderUseCase = dispatchWorkOrderUseCase,
|
||||
_suspendWorkOrderUseCase = suspendWorkOrderUseCase,
|
||||
_completeWorkOrderUseCase = completeWorkOrderUseCase,
|
||||
_startWorkOrderUseCase = startWorkOrderUseCase,
|
||||
super(WorkOrderInitial());
|
||||
|
||||
Future<void> loadWorkOrderList({
|
||||
String? orderNo,
|
||||
String? orderTitle,
|
||||
int? sourceType,
|
||||
int? orderType,
|
||||
int? priorityLevel,
|
||||
int? assigneeId,
|
||||
int? deviceId,
|
||||
int? siteId,
|
||||
int? orgId,
|
||||
int? orderStatus,
|
||||
String? startTime,
|
||||
String? endTime,
|
||||
String? keyword,
|
||||
}) async {
|
||||
emit(WorkOrderLoading());
|
||||
final result = await _getWorkOrderListUseCase.execute(
|
||||
orderNo: orderNo,
|
||||
orderTitle: orderTitle,
|
||||
sourceType: sourceType,
|
||||
orderType: orderType,
|
||||
priorityLevel: priorityLevel,
|
||||
assigneeId: assigneeId,
|
||||
deviceId: deviceId,
|
||||
siteId: siteId,
|
||||
orgId: orgId,
|
||||
orderStatus: orderStatus,
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
keyword: keyword,
|
||||
pageNum: 1,
|
||||
pageSize: 10000,
|
||||
);
|
||||
result.fold(
|
||||
(failure) => emit(WorkOrderError(failure.message)),
|
||||
(orders) => emit(WorkOrderListLoaded(orders)),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> loadWorkOrderDetail(int id) async {
|
||||
emit(WorkOrderLoading());
|
||||
final result = await _getWorkOrderDetailUseCase.execute(id);
|
||||
result.fold(
|
||||
(failure) => emit(WorkOrderError(failure.message)),
|
||||
(order) => emit(WorkOrderDetailLoaded(order)),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> dispatchWorkOrder({
|
||||
required int orderId,
|
||||
required int assigneeId,
|
||||
required String assigneeName,
|
||||
String? collaboratorIds,
|
||||
String? collaboratorNames,
|
||||
String? planStartTime,
|
||||
String? planEndTime,
|
||||
String? deadlineTime,
|
||||
}) async {
|
||||
emit(const WorkOrderActionInProgress('派发工单'));
|
||||
final result = await _dispatchWorkOrderUseCase.execute(
|
||||
orderId: orderId,
|
||||
assigneeId: assigneeId,
|
||||
assigneeName: assigneeName,
|
||||
collaboratorIds: collaboratorIds,
|
||||
collaboratorNames: collaboratorNames,
|
||||
planStartTime: planStartTime,
|
||||
planEndTime: planEndTime,
|
||||
deadlineTime: deadlineTime,
|
||||
);
|
||||
result.fold(
|
||||
(failure) => emit(WorkOrderError(failure.message)),
|
||||
(success) => emit(const WorkOrderActionSuccess('派发工单成功')),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> suspendWorkOrder(int id) async {
|
||||
emit(const WorkOrderActionInProgress('挂起工单'));
|
||||
final result = await _suspendWorkOrderUseCase.execute(id);
|
||||
result.fold(
|
||||
(failure) => emit(WorkOrderError(failure.message)),
|
||||
(success) => emit(const WorkOrderActionSuccess('挂起工单成功')),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> completeWorkOrder({
|
||||
required int id,
|
||||
String? completeRemark,
|
||||
String? completeTime,
|
||||
}) async {
|
||||
emit(const WorkOrderActionInProgress('完成工单'));
|
||||
final result = await _completeWorkOrderUseCase.execute(
|
||||
id: id,
|
||||
completeRemark: completeRemark,
|
||||
completeTime: completeTime,
|
||||
);
|
||||
result.fold(
|
||||
(failure) => emit(WorkOrderError(failure.message)),
|
||||
(success) => emit(const WorkOrderActionSuccess('完成工单成功')),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> startWorkOrder({
|
||||
required List<int> ids,
|
||||
String? startTime,
|
||||
String? deviceId,
|
||||
}) async {
|
||||
emit(const WorkOrderActionInProgress('开始执行工单'));
|
||||
final result = await _startWorkOrderUseCase.execute(
|
||||
ids: ids,
|
||||
startTime: startTime,
|
||||
deviceId: deviceId,
|
||||
);
|
||||
result.fold(
|
||||
(failure) => emit(WorkOrderError(failure.message)),
|
||||
(success) => emit(const WorkOrderActionSuccess('开始执行工单成功')),
|
||||
);
|
||||
}
|
||||
|
||||
void refresh() {
|
||||
emit(WorkOrderInitial());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:maibu_satabot_v2/features/v2/work_order/domain/entities/work_order_entity.dart';
|
||||
|
||||
abstract class WorkOrderState extends Equatable {
|
||||
const WorkOrderState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class WorkOrderInitial extends WorkOrderState {}
|
||||
|
||||
class WorkOrderLoading extends WorkOrderState {}
|
||||
|
||||
class WorkOrderListLoaded extends WorkOrderState {
|
||||
final List<WorkOrderEntity> orders;
|
||||
|
||||
const WorkOrderListLoaded(this.orders);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [orders];
|
||||
}
|
||||
|
||||
class WorkOrderDetailLoaded extends WorkOrderState {
|
||||
final WorkOrderEntity order;
|
||||
|
||||
const WorkOrderDetailLoaded(this.order);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [order];
|
||||
}
|
||||
|
||||
class WorkOrderActionInProgress extends WorkOrderState {
|
||||
final String action;
|
||||
|
||||
const WorkOrderActionInProgress(this.action);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [action];
|
||||
}
|
||||
|
||||
class WorkOrderActionSuccess extends WorkOrderState {
|
||||
final String action;
|
||||
|
||||
const WorkOrderActionSuccess(this.action);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [action];
|
||||
}
|
||||
|
||||
class WorkOrderError extends WorkOrderState {
|
||||
final String message;
|
||||
|
||||
const WorkOrderError(this.message);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
Reference in New Issue
Block a user