From 0e450768c357b45701a2e5ed162f4e93b3dd617c Mon Sep 17 00:00:00 2001
From: zhangchengsong <zhangchengsong@hnkhzn.com>
Date: 星期三, 15 四月 2026 20:53:24 +0800
Subject: [PATCH] 最新

---
 项目代码/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  270 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 230 insertions(+), 40 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index f2a75ac..bc2ae13 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -16,6 +16,7 @@
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
 using AutoMapper;
+using HslCommunication;
 using Microsoft.AspNetCore.Mvc.RazorPages;
 using NetTaste;
 using Newtonsoft.Json;
@@ -38,6 +39,7 @@
 using System.Threading.Tasks;
 using WIDESEA_Comm.Http;
 using WIDESEA_Common.Log;
+using WIDESEA_Core.Enums;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseRepository;
@@ -46,10 +48,14 @@
 using WIDESEAWCS_Core.Utilities;
 using WIDESEAWCS_DTO.Enum;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ISystemRepository;
 using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model;
 using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Model.Models.System;
+using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_TaskInfoRepository;
@@ -67,6 +73,7 @@
         private readonly IMapper _mapper;
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly IDt_roadwayinfoService _Dt_roadwayinfoService;
+        private readonly IDt_PlatformStationRepository _dt_PlatformStation;
 
         private Dictionary<string, OrderByType> _taskOrderBy = new()
             {
@@ -80,7 +87,7 @@
         public string urlWMSdeverror = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSdeverror"];
         public string urlWMSliftinposition = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSliftinposition"];
 
-        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, ITask_HtyRepository task_HtyRepository, IUnitOfWorkManage unitOfWork, IDt_roadwayinfoService dt_RoadwayinfoService) : base(BaseDal)
+        public TaskService(ITaskRepository BaseDal, IDt_PlatformStationRepository dt_PlatformStation, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, ITask_HtyRepository task_HtyRepository, IUnitOfWorkManage unitOfWork, IDt_roadwayinfoService dt_RoadwayinfoService) : base(BaseDal)
         {
             _routerService = routerService;
             _taskExecuteDetailService = taskExecuteDetailService;
@@ -90,6 +97,7 @@
             _mapper = mapper;
             _unitOfWorkManage = unitOfWork;
             _Dt_roadwayinfoService = dt_RoadwayinfoService;
+            _dt_PlatformStation = dt_PlatformStation;
         }
 
         //鏍规嵁浠诲姟鍙凤紝鏌ヨ浠诲姟
@@ -103,7 +111,7 @@
         /// </summary>
         /// <param name="taskNum">浠诲姟鍙�</param>
         /// <returns></returns>
-        public WebResponseContent StackCraneTaskCompleted(int taskNum)
+        public WebResponseContent StackCraneTaskCompleted(int taskNum,string PalletCode)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -115,12 +123,18 @@
                 {
                     task.TaskState = (int)TaskOutStatusEnum.OutFinish;
                     BaseDal.UpdateData(task);
-
                     string Result = WMSTaskStatusEnum.outsuccess.GetDescription();
-                    //鍚屾缁欎笂娓稿弽棣堜换鍔″畬鎴�
-                    //CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-                    //if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-
+                    if (task.Creater.Equals("WMS"))
+                    {
+                        //鍚屾缁欎笂娓稿弽棣堜换鍔″畬鎴�
+                        Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                        CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                        if (command.status != "success")
+                        {
+                            WriteLog.Write_Log("璋冨彇涓婃父杩斿洖澶辫触", "瀹屾垚鍫嗗灈鏈轰换鍔″け璐�", $"鏉$爜:銆恵task.PalletCode}銆�,浠诲姟鍙凤細銆恵task.TaskNum}銆�");
+                            return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                        }
+                    }
                     task.ModifyDate = DateTime.Now;
                     BaseDal.DeleteData(task);
                     _task_HtyService.AddTaskHty(task);
@@ -132,10 +146,16 @@
                     task.TaskState = (int)TaskInStatusEnum.InFinish;
                     BaseDal.UpdateData(task);
                     string Result = WMSTaskStatusEnum.insuccess.GetDescription();
-                    //CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-
-                    //if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-
+                    if (task.Creater.Equals("WMS"))
+                    {
+                        Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                        CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                        if (command.status != "success")
+                        {
+                            WriteLog.Write_Log("璋冨彇涓婃父杩斿洖澶辫触", "瀹屾垚鍫嗗灈鏈轰换鍔″け璐�", $"鏉$爜:銆恵task.PalletCode}銆�,浠诲姟鍙凤細銆恵task.TaskNum}銆�");
+                            return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                        }
+                    }
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = "System";
                     BaseDal.DeleteData(task);
@@ -147,10 +167,17 @@
                     task.TaskState = (int)TaskinventoryStatusEnum.inventoryFinish;
                     BaseDal.UpdateData(task);
                     string Result = WMSTaskStatusEnum.insuccess.GetDescription();
-                    //CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-
-                    //if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-
+                    
+                    if (task.Creater.Equals("WMS"))
+                    {
+                        Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                        CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                        if (command.status != "success")
+                        {
+                            WriteLog.Write_Log("璋冨彇涓婃父杩斿洖澶辫触", "瀹屾垚鍫嗗灈鏈轰换鍔″け璐�", $"鏉$爜:銆恵task.PalletCode}銆�,浠诲姟鍙凤細銆恵task.TaskNum}銆�");
+                            return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                        }
+                    }
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = "System";
                     BaseDal.DeleteData(task);
@@ -243,10 +270,10 @@
                 task.ModifyDate = DateTime.Now;
                 task.Modifier = "System";
                 BaseDal.UpdateData(task);
-
+                Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
                 //鍙嶉鑷充笂娓�
-                CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-
+                CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                Console.WriteLine(command.ToJsonString());
                 _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
 
                 content = WebResponseContent.Instance.OK();
@@ -477,17 +504,32 @@
                 Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                 if (task != null)
                 {
-                    BaseDal.DeleteData(task);
-                    task.ModifyDate = DateTime.Now;
-                    task.Modifier = App.User?.UserName;
-                    task.Remark = "浜哄伐鎵嬪姩鍙栨秷";
-                    BaseDal.DeleteData(task);
-                    _task_HtyService.AddTaskHty(task);
-                    content.Status = true;
+                    //涓婃姤鍏ュ簱浠诲姟寮傚父
+                    if (task.TaskType == (int)TaskTypeEnum.Inbound)
+                    {
+                        string Result = WMSTaskStatusEnum.inerror.GetDescription();
+                        if (task.Creater.Equals("WMS"))
+                        {
+                            Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                            CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                            if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屼换鍔″彇娑堝け璐ワ紝鏉$爜锛歿task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                        }
+                        BaseDal.DeleteData(task);
+                        task.ModifyDate = DateTime.Now;
+                        task.Modifier = App.User?.UserName;
+                        task.Remark = "浜哄伐鎵嬪姩鍙栨秷";
+                        BaseDal.DeleteData(task);
+                        _task_HtyService.AddTaskHty(task);
+                        content.Status = true;
+                    }
+                    else
+                    {
+                        return WebResponseContent.Instance.Error($"鍙栨秷澶辫触,鍙兘鍙栨秷鍏ュ簱浠诲姟");
+                    }
                 }
                 else
                 {
-                    WebResponseContent.Instance.Error($"鍙栨秷澶辫触,璇ヤ换鍔°�恵taskNum}銆戜笉瀛樺湪");
+                   return  WebResponseContent.Instance.Error($"鍙栨秷澶辫触,璇ヤ换鍔°�恵taskNum}銆戜笉瀛樺湪");
                 }
                 return content;
             }
@@ -512,11 +554,13 @@
                 if (task.TaskType == (int)TaskTypeEnum.Outbound)
                 {
                     string Result = WMSTaskStatusEnum.outsuccess.GetDescription();
-                    //鍚屾缁欎笂娓稿弽棣堜换鍔″畬鎴�
-                    //CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-                    //if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-
-                    task.ModifyDate = DateTime.Now;
+                    if (task.Creater.Equals("WMS"))
+                    {
+                        Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                        CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                        if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                    }
+                        task.ModifyDate = DateTime.Now;
                     task.Modifier = App.User?.UserName;
                     task.Remark = "浜哄伐鎵嬪姩瀹屾垚";
                     BaseDal.DeleteData(task);
@@ -526,11 +570,13 @@
                 else if (task.TaskType == (int)TaskTypeEnum.Inbound)
                 {
                     string Result = WMSTaskStatusEnum.insuccess.GetDescription();
-                    //CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-
-                    //if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-
-                    task.ModifyDate = DateTime.Now;
+                    if (task.Creater.Equals("WMS"))
+                    {
+                        Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                        CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                        if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                    }
+                        task.ModifyDate = DateTime.Now;
                     task.Modifier = App.User?.UserName;
                     task.Remark = "浜哄伐鎵嬪姩瀹屾垚";
                     BaseDal.DeleteData(task);
@@ -540,10 +586,12 @@
                 else if (task.TaskType == (int)TaskTypeEnum.Inventorybound)
                 {;
                     string Result = WMSTaskStatusEnum.insuccess.GetDescription();
-                    //CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, "invmd", "");
-
-                    //if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
-
+                    if (task.Creater.Equals("WMS"))
+                    {
+                        Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(task.Roadway);
+                        CommandResult command = taskreturn(int.Parse(task.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
+                        if (command.status != "success") return content.Error($"璋冨彇涓婃父杩斿洖澶辫触锛屽畬鎴愬爢鍨涙満浠诲姟澶辫触锛屾潯鐮侊細{task.PalletCode},浠诲姟鍙凤細{task.TaskNum}");
+                    }
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = App.User?.UserName;
                     task.Remark = "浜哄伐鎵嬪姩瀹屾垚";
@@ -564,5 +612,147 @@
             return content;
         }
 
+        /// <summary>
+        /// 鎵嬪姩鍒涘缓浠诲姟
+        /// </summary>
+        /// <param name="transfer"></param>
+        /// <returns></returns>
+        public WebResponseContent CreateManualTask(Dt_Task transfer)
+        {
+
+
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName.Contains("鍫嗗灈鏈�"));
+                // 鍒ゆ柇璁惧鏄惁瀛樺湪
+                if (device == null)
+                {
+                    content.Error("鎵嬪姩鍒涘缓浠诲姟澶辫触锛屽師鍥狅細鏈壘鍒板爢鍨涙満璁惧");
+                    WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓澶辫触", "鍒涘缓澶辫触", $"鍘熷洜锛氭湭鎵惧埌鍫嗗灈鏈鸿澶�,鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                    return content;
+                }
+
+                // 鍒ゆ柇鍦板潃鏄惁灞炰簬褰撳墠璁惧搴�
+                if (transfer.SourceAddress.Contains(device.DeviceCode) && transfer.TargetAddress.Contains(device.DeviceCode))
+                {
+                    // 鍏ュ簱
+                    if (transfer.TaskType == 200)
+                    {
+                        Dt_PlatformStation _PlatformStation = _dt_PlatformStation.QueryFirst(x => x.Station_code == transfer.SourceAddress);
+                        if (_PlatformStation == null)
+                        {
+                            content.Error($"鎵嬪姩鍒涘缓浠诲姟澶辫触,鍘熷洜:{device.DeviceCode}搴撲笉瀛樺湪杩欎釜搴撳彛锛歿transfer.SourceAddress}");
+                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓澶辫触", "鍒涘缓澶辫触", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                        }
+                        else
+                        {
+                            // 姝e父鍒涘缓浠诲姟
+                            transfer.TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                            transfer.TaskState = 200;
+                            transfer.CurrentAddress = transfer.SourceAddress;
+                            transfer.NextAddress = transfer.TargetAddress;
+                            transfer.Roadway = device.DeviceCode;
+                            transfer.Creater = "WCS";
+                            transfer.Grade = 1;
+                            transfer.CreateDate = DateTime.Now;
+                            _unitOfWorkManage.BeginTran();
+                            BaseDal.AddData(transfer);
+                            _unitOfWorkManage.CommitTran();
+                            content.OK("鎵嬪姩浠诲姟鍒涘缓鎴愬姛锛�");
+                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                        }
+                        return content;
+
+                    }
+                    // 鍑哄簱
+                    else if (transfer.TaskType == 100)
+                    {
+                        Dt_PlatformStation _PlatformStation = _dt_PlatformStation.QueryFirst(x => x.Station_code == transfer.TargetAddress);
+                        if (_PlatformStation == null)
+                        {
+                            content.Error($"鎵嬪姩鍒涘缓浠诲姟澶辫触,鍘熷洜:{device.DeviceCode}搴撲笉瀛樺湪杩欎釜搴撳彛锛歿transfer.TargetAddress}");
+                        }
+                        else
+                        {
+                            // 姝e父鍒涘缓浠诲姟
+                            transfer.TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
+                            transfer.TaskState = 100;
+                            transfer.CurrentAddress = transfer.SourceAddress;
+                            transfer.NextAddress = transfer.TargetAddress;
+                            transfer.Roadway = device.DeviceCode;
+                            transfer.Creater = "WCS";
+                            transfer.Grade = 1;
+                            transfer.CreateDate = DateTime.Now;
+                            _unitOfWorkManage.BeginTran();
+                            BaseDal.AddData(transfer);
+                            _unitOfWorkManage.CommitTran();
+                            content.OK("鎵嬪姩浠诲姟鍒涘缓鎴愬姛锛�");
+                            WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓鎴愬姛", "鍒涘缓鎴愬姛", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                        }
+                        return content;
+                    }
+
+
+                }
+                else
+                {
+                    content.Error($"鎵嬪姩鍒涘缓浠诲姟澶辫触,鍘熷洜:{device.DeviceCode}搴撳湴鍧�涓嶅尮閰�,璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                    WriteLog.Write_Log("鎵嬪姩浠诲姟鍒涘缓澶辫触", "鍒涘缓澶辫触", $"鎵樼洏缂栧彿锛歿transfer.PalletCode}锛屼换鍔$被鍨嬶細{transfer.TaskType},璧峰鍦板潃锛歿transfer.SourceAddress}锛岀洰鏍囧湴鍧�锛歿transfer.TargetAddress}");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error($"鎵嬪姩鍒涘缓浠诲姟澶辫触锛岀郴缁熷紓甯革細{ex.Message}");
+                WriteLog.Write_Log("鎵嬪姩浠诲姟寮傚父", "寮傚父", ex.ToString());
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鎵嬪姩鍒犻櫎浠诲姟
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+
+        public WebResponseContent CreateDelete(int taskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = App.User?.UserName;
+                task.Remark = "浜哄伐鎵嬪姩鍒犻櫎";
+                content.Status =  BaseDal.DeleteData(task);
+                _task_HtyService.AddTaskHty(task);
+                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鎵嬪姩鍒犻櫎浠诲姟");
+            }
+            catch(Exception e)
+            {
+                WebResponseContent.Instance.Error(e.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 缂栬緫
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public override WebResponseContent UpdateData(SaveModel saveModel)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string json = JsonConvert.SerializeObject(saveModel.MainData);
+                Dt_Task task = JsonConvert.DeserializeObject<Dt_Task>(json);
+                content.Status = BaseDal.UpdateData(task);
+            }catch(Exception e)
+            {
+                WebResponseContent.Instance.Error(e.Message);
+            }
+            return content;
+        }
     }
 }

--
Gitblit v1.9.3