1
HuBingJie
2025-11-22 51af2794f47d5b68496edbc09d0ccb168347f02b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 命名空间:WIDESEAWCS_TaskInfoService
 * 创建者:系统自动生成
 * 创建时间:2024/11/14
 * 版本:V1.0.0
 * 描述:任务历史服务实现
 *
 * ----------------------------------------------------------------
 * 修改人:
 * 修改时间:
 * 版本:V1.0.1
 * 修改说明:
 * 
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
 
using AutoMapper;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using SqlSugar;
using System.Linq;
 
namespace WIDESEAWCS_TaskInfoService
{
    /// <summary>
    /// 任务历史服务实现
    /// </summary>
    public class TaskHtyService : ServiceBase<Dt_Task_Hty, IRepository<Dt_Task_Hty>>, ITaskHtyService
    {
        private readonly IMapper _mapper;
 
        public TaskHtyService(IRepository<Dt_Task_Hty> repository, IMapper mapper) : base(repository)
        {
            _mapper = mapper;
        }
 
        /// <summary>
        /// 添加任务历史记录
        /// </summary>
        /// <param name="task">原任务对象</param>
        /// <param name="operateType">操作类型</param>
        /// <returns>是否添加成功</returns>
        public bool AddTaskHistory(Dt_Task task, string operateType = "自动完成")
        {
            try
            {
                if (task == null)
                {
                    return false;
                }
 
                // 使用AutoMapper将任务对象映射到历史对象
                var historyTask = _mapper.Map<Dt_Task_Hty>(task);
                
                // 设置历史记录特有的字段
                historyTask.TaskId = 0; // 重置主键,让数据库自动生成
                historyTask.SourceId = task.TaskId; // 设置源记录ID
                historyTask.OperateType = operateType; // 设置操作类型
                historyTask.CreateDate = DateTime.Now;
                historyTask.Creater = "System";
                historyTask.ModifyDate = DateTime.Now;
                historyTask.Modifier = "System";
 
                // 插入历史记录
                int result = BaseDal.AddData(historyTask);
                return result > 0;
            }
            catch (Exception ex)
            {
                // 记录异常日志
                Console.WriteLine($"添加任务历史记录失败: {ex.Message}");
                return false;
            }
        }
 
        /// <summary>
        /// 根据原任务ID查询历史记录
        /// </summary>
        /// <param name="sourceId">原任务ID</param>
        /// <returns>历史记录列表</returns>
        public List<Dt_Task_Hty> GetHistoryBySourceId(int sourceId)
        {
            return BaseDal.QueryData(x => x.SourceId == sourceId).OrderByDescending(x => x.CreateDate).ToList();
        }
 
        /// <summary>
        /// 根据任务号查询历史记录
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <returns>历史记录列表</returns>
        public List<Dt_Task_Hty> GetHistoryByTaskNum(int taskNum)
        {
            return BaseDal.QueryData(x => x.TaskNum == taskNum).OrderByDescending(x => x.CreateDate).ToList();
        }
    }
}