| | |
| | | /// <returns></returns> |
| | | public WebResponseContent ShuttleCarTaskCompleted(int taskNum, short TaskTypeComplete) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | WebResponseContent content = new WebResponseContent().OK(); |
| | | try |
| | | { |
| | | var task = GetTaskInfo(taskNum); |
| | | if (task == null) throw new Exception($"æªæ¾å°ä»»å¡,ä»»å¡å·ã{taskNum}ã"); |
| | | switch (TaskTypeComplete) |
| | | if (task != null) |
| | | { |
| | | case 1://å
¥åºå®æ |
| | | { |
| | | if (task.TaskType != (int)TaskInboundTypeEnum.Inbound) throw new Exception($"ä»»å¡ç±»åä¸å¹é
,ä»»å¡å·ã{taskNum}ã"); |
| | | int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); |
| | | task.TaskState = nextStatus; |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | content = AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"ç©¿æ¢è½¦å
¥åºå®æ"); |
| | | } |
| | | break; |
| | | case 2://åºåºå®æ |
| | | { |
| | | int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); |
| | | task.TaskState = nextStatus; |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | content = UpdateData(task); |
| | | } |
| | | break; |
| | | case 10://å
çµå®æ |
| | | content.OK(); |
| | | break; |
| | | case 13://Aä¾§åé¶å®æ |
| | | case 14://Bä¾§åé¶å®æ |
| | | { |
| | | if (task.TaskType != (int)TaskOtherTypeEnum.RelocationCar) throw new Exception($"ä»»å¡ç±»åä¸å¹é
,ä»»å¡å·ã{taskNum}ã"); |
| | | task.TaskState = (int)TaskCarStatusEnum.ShuttleCar_Finish; |
| | | content = UpdateData(task); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | switch (TaskTypeComplete) |
| | | { |
| | | case 1://å
¥åºå®æ |
| | | { |
| | | if (TaskInboundTypes.Contains(task.TaskType) && task.TaskState == TaskInStatusEnum.Car_InExecuting.ObjToInt()) |
| | | { |
| | | task.TaskState = TaskInStatusEnum.InFinish.ObjToInt(); |
| | | AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"ç©¿æ¢è½¦å
¥åºå®æ"); |
| | | } |
| | | else if (TaskRelocationTypes.Contains(task.TaskType) && task.TaskState == TaskRelocationStatusEnum.CarTarget_Executing.ObjToInt()) |
| | | { |
| | | task.TaskState = TaskRelocationStatusEnum.RelocationFinish.ObjToInt(); |
| | | AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"ç©¿æ¢è½¦ç§»åºå®æ"); |
| | | } |
| | | } |
| | | break; |
| | | case 2://åºåºå®æ |
| | | { |
| | | if (TaskOutboundTypes.Contains(task.TaskType) && task.TaskState == TaskOutStatusEnum.Car_OutExecuting.ObjToInt()) |
| | | { |
| | | task.TaskState = TaskOutStatusEnum.Car_OutFinish.ObjToInt(); |
| | | UpdateData(task); |
| | | } |
| | | else if (TaskRelocationTypes.Contains(task.TaskType) && task.TaskState == TaskRelocationStatusEnum.CarSource_Executing.ObjToInt()) |
| | | { |
| | | task.TaskState = TaskRelocationStatusEnum.CarSource_Finish.ObjToInt(); |
| | | UpdateData(task); |
| | | } |
| | | } |
| | | break; |
| | | case 10://å
çµå®æ |
| | | { |
| | | if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == (int)CarChargingTaskEnum.CarCharging_Charging)//移车å
çµ |
| | | { |
| | | task.TaskState = CarChargingTaskEnum.CarChargingFinish.ObjToInt(); |
| | | AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"ç©¿æ¢è½¦å
çµå®æ"); |
| | | } |
| | | } |
| | | break; |
| | | case 13://Aä¾§åé¶å®æ |
| | | case 14://Bä¾§åé¶å®æ |
| | | { |
| | | if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt() && task.TaskState == TaskCarStatusEnum.ShuttleCar_Executing.ObjToInt())//ç§»è½¦ä»»å¡ |
| | | { |
| | | task.TaskState = TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt(); |
| | | UpdateData(task); |
| | | } |
| | | else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt() && task.TaskState == CarChargingTaskEnum.CarCharging_Executing.ObjToInt())//移车å
çµ |
| | | { |
| | | task.TaskState = CarChargingTaskEnum.CarCharging_Finish.ObjToInt(); |
| | | UpdateData(task); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public static int tasktype = 0; |
| | | /// <summary> |
| | | /// æ¥è¯¢ç©¿æ¢è½¦åºå
¥åºä»»å¡ |
| | | /// </summary> |
| | |
| | | /// <returns></returns> |
| | | public Dt_Task QueryShuttleCarTask(string deviceNo, string currentAddress = "") |
| | | { |
| | | if (string.IsNullOrEmpty(currentAddress)) |
| | | return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); |
| | | Dt_Task? _Task = null; |
| | | if (tasktype == 0) |
| | | { |
| | | if (string.IsNullOrEmpty(currentAddress)) |
| | | _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); |
| | | else |
| | | _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); |
| | | } |
| | | else |
| | | return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); |
| | | { |
| | | if (TaskInboundTypes.Contains(tasktype)) |
| | | { |
| | | _Task = BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy) ?? BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy); |
| | | } |
| | | else if (TaskOutboundTypes.Contains(tasktype)) |
| | | { |
| | | _Task = BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish, TaskOrderBy) ?? BaseDal.QueryFirst(x => TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); |
| | | } |
| | | } |
| | | if (_Task != null) tasktype = _Task.TaskType; |
| | | return _Task; |
| | | } |
| | | /// <summary> |
| | | /// è·åç§»åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="deviceNo"></param> |
| | | /// <param name="currentAddress"></param> |
| | | /// <returns></returns> |
| | | public Dt_Task ShuttleCarRelocationTask(string deviceNo, string currentAddress = "") |
| | | { |
| | | List<Dt_Task> tasks = null; |
| | | Dt_Task? task = null; |
| | | if (string.IsNullOrEmpty(currentAddress)) |
| | | tasks = BaseDal.QueryData(x => /*x.ShuttleCarCode == deviceNo &&*/ TaskRelocationTypes.Contains(x.TaskType) && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew).OrderBy(x => x.TaskNum).ToList(); |
| | | else |
| | | tasks = BaseDal.QueryData(x => /*x.ShuttleCarCode == deviceNo &&*/ x.CurrentAddress == currentAddress && TaskRelocationTypes.Contains(x.TaskType) && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew).OrderBy(x => x.TaskNum).ToList(); |
| | | if (tasks != null && tasks.Count > 0) |
| | | { |
| | | task = tasks[0]; |
| | | } |
| | | return task; |
| | | } |
| | | } |
| | | } |