From f7686c71ac53f0d1bbd439bc0c898c86f7d68e34 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 10 十一月 2025 16:39:10 +0800
Subject: [PATCH] 优化代码
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 221 insertions(+), 4 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs"
index 4bfcd99..6aa9dd9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs"
@@ -1,16 +1,226 @@
-锘縰sing System;
+锘縰sing SqlSugar.Extensions;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_TaskInfoService
{
public partial class TaskService
{
+ public WebResponseContent ManualTask(int TaskId, int TaskType)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ var Task = BaseDal.QueryFirst(x => x.TaskId == TaskId);
+ if (Task == null) throw new Exception("鏈壘鍒颁换鍔′俊鎭�");
+ switch ((ManualTaskEnum)TaskType)
+ {
+ case ManualTaskEnum.SCTaskSend:
+ content = SCTaskSend(Task);
+ break;
+ case ManualTaskEnum.SCTaskCompleted:
+ content = SCTaskCompleted(Task);
+ break;
+ case ManualTaskEnum.Completed:
+ content = Completed(Task);
+ break;
+ case ManualTaskEnum.Cancel:
+ content = Cancel(Task);
+ break;
+ default:
+ break;
+ }
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 閲嶆柊涓嬪彂鍫嗗灈鏈轰换鍔�
+ /// </summary>
+ /// <param name="task"></param>
+ /// <returns></returns>
+ public WebResponseContent SCTaskSend(Dt_Task task)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ if (TaskInboundTypes.Contains(task.TaskType))
+ {
+ if (task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄叆搴撴墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+ task.TaskState = TaskInStatusEnum.Line_InFinish.ObjToInt();
+ content = UpdateData(task);
+ }
+ else if (TaskOutboundTypes.Contains(task.TaskType))
+ {
+ if (task.TaskState != TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄嚭搴撴墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+ task.TaskState = TaskOutStatusEnum.Car_OutFinish.ObjToInt();
+ content = UpdateData(task);
+ }
+ else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+ {
+ if (task.TaskState != TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ搴撴墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+ task.TaskState = TaskRelocationStatusEnum.CarSource_Finish.ObjToInt();
+ content = UpdateData(task);
+
+ }
+ else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
+ {
+ if (task.TaskState != TaskCarStatusEnum.SC_CarExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+ task.TaskState = TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt();
+ content = UpdateData(task);
+ }
+ else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+ {
+ if (task.TaskState != CarChargingTaskEnum.CarChargingSC_CarExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+ task.TaskState = CarChargingTaskEnum.CarCharging_Finish.ObjToInt();
+ content = UpdateData(task);
+ }
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 瀹屾垚鍫嗗灈鏈轰换鍔�
+ /// </summary>
+ /// <param name="task"></param>
+ /// <returns></returns>
+ public WebResponseContent SCTaskCompleted(Dt_Task task)
+ {
+ try
+ {
+ if (TaskInboundTypes.Contains(task.TaskType))
+ {
+ if (task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄叆搴撴墽琛屼腑");
+ }
+ else if (TaskOutboundTypes.Contains(task.TaskType))
+ {
+ if (task.TaskState != TaskOutStatusEnum.SC_OutGetFinish.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄嚭搴撴墽琛屼腑");
+ }
+ else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+ {
+ if (task.TaskState != TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ搴撴墽琛屼腑");
+ }
+ else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
+ {
+ if (task.TaskState != TaskCarStatusEnum.SC_CarExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑");
+ }
+ else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+ {
+ if (task.TaskState != CarChargingTaskEnum.CarChargingSC_CarExecuting.ObjToInt())
+ throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑");
+ }
+ return StackCraneTaskCompleted(task.TaskNum);
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+ /// <summary>
+ /// 瀹屾垚浠诲姟
+ /// </summary>
+ /// <param name="task"></param>
+ /// <returns></returns>
+ public WebResponseContent Completed(Dt_Task task)
+ {
+ try
+ {
+ if (TaskInboundTypes.Contains(task.TaskType))
+ {
+ if (task.TaskState < TaskInStatusEnum.SC_InFinish.ObjToInt())
+ {
+ task.TaskState = TaskInStatusEnum.SC_InFinish.ObjToInt();
+ ToWMSCompletedTask(task);
+ }
+ AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+ }
+ else if (TaskOutboundTypes.Contains(task.TaskType))
+ {
+ if (task.TaskState < TaskOutStatusEnum.OutFinish.ObjToInt())
+ {
+ task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
+ ToWMSCompletedTask(task);
+ }
+ AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+ }
+ else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+ {
+ if (task.TaskState < TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt())
+ {
+ task.TaskState = TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt();
+ ToWMSCompletedTask(task);
+ }
+ AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+ }
+ else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
+ {
+ task.TaskState = TaskCarStatusEnum.RelocationCarFinish.ObjToInt();
+ AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+ }
+ else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+ {
+ task.TaskState = CarChargingTaskEnum.CarChargingFinish.ObjToInt();
+ AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+ }
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+ /// <summary>
+ /// 鍙栨秷浠诲姟
+ /// </summary>
+ /// <param name="task"></param>
+ /// <returns></returns>
+ public WebResponseContent Cancel(Dt_Task task)
+ {
+ try
+ {
+ if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt() || task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+ {
+ AddTask_Hty(task, TaskOperateTypeEnum.ManualDeletion);
+ return WebResponseContent.Instance.OK();
+ }
+ if (!TaskInboundTypes.Contains(task.TaskType))
+ throw new Exception("鏃犳潈闄�");
+ if (task.TaskState > TaskInStatusEnum.Line_InExecuting.ObjToInt() && !string.IsNullOrEmpty(task.TargetAddress))
+ throw new Exception("宸插垎閰嶇洰鏍囧湴鍧�,涓嶅彲鍙栨秷");
+ task.TaskState = TaskInStatusEnum.InCancel.ObjToInt();
+ BaseDal.UpdateData(task);
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
/// <summary>
/// 浜哄伐鎿嶄綔浠诲姟
/// 1锛氬畬鎴愶紱2锛氬彇娑�
@@ -23,10 +233,17 @@
try
{
var Tasks = BaseDal.QueryData(x => saveModel.DelKeys.Contains(x.TaskId));
- foreach (var task in Tasks)
+ if (Tasks.Where(x => !TaskInboundTypes.Contains(x.TaskType)).Any()) throw new Exception("鍙彲鍙栨秷鍏ュ簱浠诲姟");
+ if (Tasks.Where(x => x.TaskState > TaskInStatusEnum.AGV_InFinish.ObjToInt()).Any()) throw new Exception("鏆備笉鍙彇娑堝凡涓婅緭閫佺嚎浠诲姟");
+ //var UserName = App.User?.UserName;
+ Tasks.ForEach(x =>
{
-
- }
+ x.TaskState = TaskInStatusEnum.InCancel.ObjToInt();
+ //x.Modifier = UserName;
+ //x.ModifyDate = DateTime.Now;
+ });
+ BaseDal.UpdateData(Tasks);
+ webResponseContent.OK();
}
catch (Exception ex)
{
--
Gitblit v1.9.3