Admin
2026-01-22 bde09c027eee16a7b05b82e71dea4d3405d6d52d
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -38,6 +38,7 @@
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.Utilities;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Task;
using WIDESEA_IBasicService;
@@ -99,28 +100,35 @@
            return WebResponseContent.Instance.OK();
        }
        //手动,任务上报
        #region
        public WebResponseContent MESManualUpload(SaveModel saveModel)
        {
            WebResponseContent response = new WebResponseContent();
            List<Dt_Task> stdata=new List<Dt_Task>();
            try
            {
                foreach (var key in saveModel.DelKeys)
                {
                    int taskId = int.Parse(key.ToString());
                    Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == taskId);
                    WebResponseContent taskResult = ProcessTask(task);
                    if (!taskResult.Status)
                    {
                        WriteLog.Write_Log("WMS_手动上报任务", $"任务上报", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode},", $"原因:{taskResult.Message}");
                        return taskResult;
                    }
                    stdata.Add(task);
                }
                WriteLog.Write_Log("WMS_手动上报任务", $"任务上报", $"成功", $"上报的数据:{stdata.ToJson()}");
                return response.OK("所有任务处理成功");
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("WMS_手动上报任务", $"任务上报", $"失败", $"WMS任务完成错误:{ex.Message}");
                return response.Error($"WMS任务完成错误:{ex.Message}");
            }
        }
@@ -137,7 +145,7 @@
                    {
                        return response.Error($"任务类型错误,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                    }
                    return HandleInboundTask(task,
                    return HandleInboundTask(task,
                        GetWcsType(task.TaskStatus,
                        (int)InTaskStatusEnum.InPLCException,
                        (int)InTaskStatusEnum.InSCException)
@@ -168,15 +176,18 @@
            return 0;
        }
        #endregion
        /// <summary>
        /// ä»»åŠ¡å®ŒæˆæŽ¥å£
        /// </summary>
        /// <param name="wCSTask"></param>
        /// <returns></returns>
        #region ä»»åŠ¡å®Œæˆ
        public WebResponseContent TaskCompleted(WCSTaskDTO wCSTask)
        {
            WebResponseContent webResponse= new WebResponseContent();
            WebResponseContent webResponse = new WebResponseContent();
            try
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == wCSTask.TaskNum && x.PalletCode == wCSTask.PalletCode);
@@ -190,7 +201,7 @@
            }
        }
        public WebResponseContent TaskCompletedtask(Dt_Task task,int wcstype)
        public WebResponseContent TaskCompletedtask(Dt_Task task, int wcstype)
        {
            WebResponseContent webResponse = new WebResponseContent();
            try
@@ -226,7 +237,7 @@
                        if (string.IsNullOrEmpty(task.TargetAddress))
                        {
                            if(task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting || task.TaskStatus == (int)InTaskStatusEnum.InPLCException)
                            if (task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting || task.TaskStatus == (int)InTaskStatusEnum.InPLCException)
                            {
                                int loctype = 0;
                                if (task.Roadway == "1" || task.Roadway == "2")
@@ -241,13 +252,22 @@
                                //查找货位,更新任务
                                Dt_LocationInfo dt_Location = _locationInfoService.GetLocation(task.Roadway, loctype);
                                if(dt_Location==null) return content.Error($"未找到该货位信息,托盘编号:{task.PalletCode}");
                                if (dt_Location == null)
                                {
                                    WriteLog.Write_Log("WCS_入库_上报完成", $"输送线完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"未找到该货位信息,托盘编号:{task.PalletCode}");
                                    return content.Error($"未找到该货位信息,托盘编号:{task.PalletCode}");
                                }
                                Dt_LocationInfo ShallowCargoHold = _locationInfoService.ShallowGetLocation(dt_Location.RoadwayNo, dt_Location.LocationType, dt_Location.Row, dt_Location.Layer, dt_Location.Column);
                                if (ShallowCargoHold == null) return content.Error($"未找到该货位信息,货位编号:{dt_Location.LocationCode}的浅货位");
                                if (ShallowCargoHold == null)
                                {
                                    WriteLog.Write_Log("WCS_入库_上报完成", $"输送线完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"未找到该货位信息,货位编号:{dt_Location.LocationCode}的浅货位");
                                    return content.Error($"未找到该货位信息,货位编号:{dt_Location.LocationCode}的浅货位");
                                }
                                if (ShallowCargoHold.LocationStatus != (int)LocationStatusEnum.Free) return content.Error($"任务号:{task.TaskId},托盘编号:{task.PalletCode},查找的货位浅货位有货,货位编号:{ShallowCargoHold.LocationCode}");
                                if (task.PalletCode[0] == 1 && (dt_Location.RoadwayNo == "1" || dt_Location.RoadwayNo == "2") && dt_Location.Column < 4)
                                {
                                    WriteLog.Write_Log("WCS_入库_上报完成", $"输送线完成", $"失败,托盘条码:{task.PalletCode},货位编号:{dt_Location.LocationCode}", $"条码为高托盘,但是查找的货位要入在低托盘下");
                                    return content.Error($"条码为高托盘,但是查找的货位要入在低托盘下,故障,托盘条码:{task.PalletCode},货位编号:{dt_Location.LocationCode}");
                                }
@@ -270,21 +290,24 @@
                                dt_StockInfo.Creater = "MWS";
                                dt_StockInfo.CreateDate = DateTime.Now;
                                dt_StockInfo.Roadway = task.Roadway;
                                _unitOfWorkManage.BeginTran();
                                _stockInfoService.AddData(dt_StockInfo);
                                _locationInfoService.UpdateData(dt_Location);
                                BaseDal.UpdateData(task);
                                _unitOfWorkManage.CommitTran();
                                WriteLog.Write_Log("WCS_入库_上报完成", $"输送线完成", $"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"已接收入库输送线完成信息,添加库存信息:{dt_StockInfo.ToJson()},修改货位:{dt_Location.ToJson()}");
                                return content.OK($"已接收入库输送线完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            }
                            else
                            {
                                WriteLog.Write_Log("WCS_入库_上报完成", $"输送线完成", $"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上报失败,当前任务不是输送线执行中,WCS上报完成失败");
                                return content.Error("上报失败,当前任务不是输送线执行中,WCS上报完成失败");
                            }
                        }
                        else
                        {
@@ -299,22 +322,22 @@
                                    _unitOfWorkManage.BeginTran();
                                    BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                                    _unitOfWorkManage.CommitTran();
                                    WriteLog.Write_Log("WCS_入库_上报完成", $"输送线点到点完成", $"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"输送线任务已反馈至上游");
                                    return content.OK($"输送线任务已反馈至上游,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                                }
                                else
                                {
                                    task.NumberSsuances = task.NumberSsuances + 1;
                                    if (task.NumberSsuances == 3)
                                    {
                                        task.TaskStatus = (int)InTaskStatusEnum.InPLCException;
                                        task.Remark = "输送线入库:上传MES失败,原因:" + mES_PCLParameter.ResultMsg;
                                        BaseDal.UpdateData(task);
                                    }
                                    task.NumberSsuances = 3;
                                    task.TaskStatus = (int)InTaskStatusEnum.InPLCException;
                                    task.Remark = "输送线入库:上传MES失败,原因:" + mES_PCLParameter.ResultMsg;
                                    BaseDal.UpdateData(task);
                                    WriteLog.Write_Log("WCS_入库_上报完成", $"输送线点到点完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"输送线任务已反馈至上游");
                                    return content.Error("上传MES失败,原因:" + mES_PCLParameter.ResultMsg);
                                }
                            }
                            else
                            {
                                WriteLog.Write_Log("WCS_入库_上报完成", $"输送线点到点完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上报失败,当前任务不是输送线执行中,WCS上报完成失败");
                                return content.Error($"上报失败,当前任务不是输送线执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            }
@@ -339,32 +362,35 @@
                                _locationInfoService.UpdateData(dt_LocationInfo);
                                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                                _unitOfWorkManage.CommitTran();
                                WriteLog.Write_Log("WCS_入库_上报完成", $"堆垛机完成", $"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"修改后的库存:{dt_Stockowc.ToJson()},修改后的库位信息:{dt_LocationInfo.ToJson()}");
                                return content.OK($"已接收入库堆垛机完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            }
                            else
                            {
                                task.NumberSsuances = task.NumberSsuances + 1;
                                if (task.NumberSsuances == 3)
                                {
                                    task.TaskStatus = (int)InTaskStatusEnum.InSCException;
                                    task.Remark = "堆垛机入库,上传MES失败,原因:" + mES_Parameter.ResultMsg;
                                    BaseDal.UpdateData(task);
                                }
                                task.NumberSsuances = 3;
                                task.TaskStatus = (int)InTaskStatusEnum.InSCException;
                                task.Remark = "堆垛机入库,上传MES失败,原因:" + mES_Parameter.ResultMsg;
                                BaseDal.UpdateData(task);
                                WriteLog.Write_Log("WCS_入库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上传MES失败,原因:{mES_Parameter.ResultMsg}");
                                return content.Error("上传MES失败,原因:" + mES_Parameter.ResultMsg);
                            }
                        }
                        else
                        {
                            WriteLog.Write_Log("WCS_入库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上报失败,当前任务不是堆垛机执行中,WCS上报完成失败");
                            return content.Error($"上报失败,当前任务不是堆垛机执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                    default:
                        WriteLog.Write_Log("WCS_入库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"WCS上报类型错误:{wcsTaskType}");
                        return content.Error($"WCS上报类型错误:{wcsTaskType}");
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                WriteLog.Write_Log("WCS_入库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"WCS任务完成接口故障,原因:{ex.Message}");
                return content.Error($"WCS任务完成接口故障,原因:{ex.Message}");
            }
        }
@@ -377,7 +403,7 @@
                switch (wcsTaskType)
                {
                    case 1:
                        if(task.TaskStatus == (int)OutTaskStatusEnum.PLC_OutExecuting || task.TaskStatus == (int)OutTaskStatusEnum.OutPLCException)
                        if (task.TaskStatus == (int)OutTaskStatusEnum.PLC_OutExecuting || task.TaskStatus == (int)OutTaskStatusEnum.OutPLCException)
                        {
                            string Resultplc = MesOutTaskStatusEnum.Finish.GetDescription();
                            //上报MES任务完成
@@ -386,26 +412,27 @@
                            {
                                task.TaskStatus = (int)OutTaskStatusEnum.PLC_OutFinish;
                                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                                WriteLog.Write_Log("WCS_出库_上报完成", $"输送线完成",$"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"已接收出库输送线完成信息");
                                return content.OK($"已接收出库输送线完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            }
                            else
                            {
                                task.NumberSsuances = task.NumberSsuances + 1;
                                if (task.NumberSsuances == 3)
                                {
                                    task.TaskStatus = (int)OutTaskStatusEnum.OutPLCException;
                                    task.Remark = "出库,输送线上传MES失败,原因:" + mES_Parameter.ResultMsg;
                                    BaseDal.UpdateData(task);
                                }
                                task.NumberSsuances =3;
                                task.TaskStatus = (int)OutTaskStatusEnum.OutPLCException;
                                task.Remark = "出库,输送线上传MES失败,原因:" + mES_Parameter.ResultMsg;
                                BaseDal.UpdateData(task);
                                WriteLog.Write_Log("WCS_出库_上报完成", $"输送线完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上传MES失败,原因:{mES_Parameter.ResultMsg}");
                                return content.Error("上传MES失败,原因:" + mES_Parameter.ResultMsg);
                            }
                        }
                        else
                        {
                            WriteLog.Write_Log("WCS_出库_上报完成", $"输送线完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上报失败,WMS当前任务不是输送线执行中,WCS上报完成失败");
                            return content.Error($"上报失败,WMS当前任务不是输送线执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                    case 2:
                        if (task.TaskStatus == (int)OutTaskStatusEnum.SC_OutExecuting || task.TaskStatus == (int)OutTaskStatusEnum.OutSCException)
@@ -430,32 +457,35 @@
                                _locationInfoService.UpdateData(dt_LocationInfo);
                                BaseDal.UpdateData(task);
                                _unitOfWorkManage.CommitTran();
                                WriteLog.Write_Log("WCS_出库_上报完成", $"堆垛机完成",$"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"删除的库存:{dt_Stockowc.ToJson()},修改的货位:{dt_LocationInfo.ToJson()}");
                                return content.OK($"已接收出库堆垛机完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            }
                            else
                            {
                                task.NumberSsuances = task.NumberSsuances + 1;
                                if (task.NumberSsuances == 3)
                                {
                                    task.TaskStatus = (int)OutTaskStatusEnum.OutSCException;
                                    task.Remark = "堆垛机出库:上传MES失败,原因:" + mES_SCParameter.ResultMsg;
                                    BaseDal.UpdateData(task);
                                }
                                task.NumberSsuances = 3;
                                task.TaskStatus = (int)OutTaskStatusEnum.OutSCException;
                                task.Remark = "堆垛机出库:上传MES失败,原因:" + mES_SCParameter.ResultMsg;
                                BaseDal.UpdateData(task);
                                WriteLog.Write_Log("WCS_出库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上传MES失败,原因:{mES_SCParameter.ResultMsg}");
                                return content.Error("上传MES失败,原因:" + mES_SCParameter.ResultMsg);
                            }
                        }
                        else
                        {
                            WriteLog.Write_Log("WCS_出库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上报失败,WMS当前任务不是堆垛机执行中,WCS上报完成失败");
                            return content.Error($"上报失败,WMS当前任务不是堆垛机执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                    default:
                        WriteLog.Write_Log("WCS_出库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"WCS上报类型错误:{wcsTaskType}");
                        return content.Error($"WCS上报类型错误:{wcsTaskType}");
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                WriteLog.Write_Log("WCS_出库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"WCS任务完成接口故障,原因:{ex.Message}");
                return content.Error($"WCS任务完成接口故障,原因:{ex.Message}");
            }
        }
@@ -467,7 +497,7 @@
            {
                if (wcsTaskType == 2)
                {
                    if(task.TaskStatus == (int)RelocationTaskStatusEnum.RelocationExecuting)
                    if (task.TaskStatus == (int)RelocationTaskStatusEnum.RelocationExecuting)
                    {
                        //上报MES任务完成
                        MES_parameter mES_Parameter = AbnormalStorageLocation(task.PalletCode, task.SourceAddress, task.TargetAddress);
@@ -494,43 +524,149 @@
                            BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                            _unitOfWorkManage.CommitTran();
                            WriteLog.Write_Log("WCS_移库_上报完成", $"堆垛机完成", $"成功,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"修改的货位:{dt_Locations.ToJson()},修改的库存:{dt_StockInfo.ToJson()}");
                            return responseContent.OK($"已接收移库堆垛机完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                        else
                        {
                            task.NumberSsuances = task.NumberSsuances + 1;
                            if (task.NumberSsuances == 3)
                            {
                                task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationException;
                                task.Remark = "移库,上传MES失败,原因:" + mES_Parameter.ResultMsg;
                                BaseDal.UpdateData(task);
                            }
                            task.NumberSsuances = 3;
                            task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationException;
                            task.Remark = "移库,上传MES失败,原因:" + mES_Parameter.ResultMsg;
                            BaseDal.UpdateData(task);
                            WriteLog.Write_Log("WCS_移库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上传MES失败,原因:{mES_Parameter.ResultMsg}");
                            return responseContent.Error("上传MES失败,原因:" + mES_Parameter.ResultMsg);
                        }
                    }
                    else
                    {
                        WriteLog.Write_Log("WCS_移库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"上报失败,WMS当前任务不是堆垛机执行中,WCS上报完成失败");
                        return responseContent.Error($"上报失败,WMS当前任务不是堆垛机执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                    }
                }
                else
                {
                    WriteLog.Write_Log("WCS_移库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"WCS上报类型错误:{wcsTaskType}");
                    return responseContent.Error($"WCS上报类型错误:{wcsTaskType}");
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                WriteLog.Write_Log("WCS_移库_上报完成", $"堆垛机完成", $"失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}", $"WCS任务完成接口故障,原因:{ex.Message}");
                return responseContent.Error($"WMS系统错误,原因:{ex.Message}");
            }
        }
        #endregion
        //任务任务恢复
        public WebResponseContent WMSTaskRecovery(SaveModel saveModel)
        {
            WebResponseContent response = new WebResponseContent();
            List<Dt_Task> dt_Task = new List<Dt_Task>();
            try
            {
                foreach (var key in saveModel.DelKeys)
                {
                    int taskId = int.Parse(key.ToString());
                    Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == taskId);
                    if (task == null)
                            return response.Error("未找到任务信息");
                    task.NumberSsuances = 0;
                    task.Remark = "";
                    dt_Task.Add(task);
                }
                bool updatetask= BaseDal.UpdateData(dt_Task);
                if (updatetask)
                {
                    WriteLog.Write_Log("WMS_任务恢复", $"WMS_任务恢复", "修改成功", $"修改的数据:{dt_Task.ToJson()}");
                    return response.OK("所有任务处理成功");
                }
                else
                {
                    WriteLog.Write_Log("WMS_任务恢复", $"WMS_任务恢复", "修改失败", $"修改的数据:{dt_Task.ToJson()}");
                    return response.Error("处理失败,修改任务失败");
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("WMS_任务恢复", $"WMS_任务恢复", "修改失败", $"修改的数据:{dt_Task.ToJson()},失败原因:{ex.Message}");
                return response.Error($"WMS任务恢复错误:{ex.Message}");
            }
        }
        public virtual WebResponseContent UpdateData(SaveModel saveModel)
        {
            try
            {
                List<string>? list = UpdateIgnoreColOnExecute?.Invoke(saveModel);
                if (saveModel == null || saveModel.MainData == null || saveModel.MainData.Count == 0)//判断参数是否传入
                {
                    return WebResponseContent.Instance.Error("传参错误,参数不能为空");
                }
                string validResult = typeof(Dt_Task).ValidateDicInEntity(saveModel.MainData, false, TProperties, list?.ToArray() ?? null);
                if (!string.IsNullOrEmpty(validResult))
                {
                    return WebResponseContent.Instance.Error(validResult);
                }
                PropertyInfo keyPro = typeof(Dt_Task).GetKeyProperty();
                if (keyPro == null)
                {
                    return WebResponseContent.Instance.Error("请先设置主键");
                }
                Dt_Task entity = saveModel.MainData.DicToModel<Dt_Task>();
                Dt_Task Dt_Custask= BaseDal.QueryFirst(x=>x.TaskId==entity.TaskId);
                List<string> listCol = new List<string>();
                foreach (var item in saveModel.MainData)
                {
                    PropertyInfo? propertyInfo = typeof(Dt_Task).GetProperty(item.Key);
                    if (propertyInfo == null)
                    {
                        propertyInfo = typeof(Dt_Task).GetProperty(item.Key.FirstLetterToLower());
                        if (propertyInfo == null)
                        {
                            propertyInfo = typeof(Dt_Task).GetProperty(item.Key.FirstLetterToUpper());
                        }
                    }
                    listCol.Add(propertyInfo?.Name);
                }
                if (saveModel.DetailData == null || saveModel.DetailData.Count == 0)
                {
                    if (list != null)
                        listCol = listCol.Where(x => !list.Contains(x)).ToList();
                    bool result = BaseDal.UpdateData(entity, listCol, list);
                    WriteLog.Write_Log("WMS_任务修改", $"任务修改", $"任务编号:{entity.TaskId},托盘条码:{entity.PalletCode},是否成功:{result}", $"原来数据:{Dt_Custask.ToJson()}======>>>>>>修改后的数据:{entity.ToJson()}");
                    return WebResponseContent.Instance.OK();
                }
                if (typeof(Dt_Task).GetNavigatePro() == null)
                {
                    return WebResponseContent.Instance.Error("未配置导航属性");
                }
                Type detailType = typeof(Dt_Task).GetDetailType();
                MethodInfo? methodInfo = GetType().GetMethod("UpdateDataInculdesDetail");
                methodInfo = methodInfo?.MakeGenericMethod(new Type[] { detailType });
                object? obj = methodInfo?.Invoke(this, new object[] { entity, detailType, saveModel.DetailData, saveModel.DelKeys });
                return obj as WebResponseContent;
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}