heshaofeng
10 天以前 b6a40a2d8fdcffb3accfc7e424c0726a87a59ddf
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/Task_HtyService.cs
@@ -1,5 +1,10 @@
using WIDESEA_Core.BaseRepository;
using AutoMapper;
using Microsoft.Extensions.Logging;
using System.Transactions;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Enums;
using WIDESEA_ITaskInfoService;
using WIDESEA_Model.Models;
@@ -7,7 +12,58 @@
public class Task_HtyService : ServiceBase<Dt_Task_Hty, IRepository<Dt_Task_Hty>>, ITask_HtyService
{
    public Task_HtyService(IRepository<Dt_Task_Hty> BaseDal) : base(BaseDal)
    private readonly ILogger<Task_HtyService> _logger;
    private readonly IMapper _mapper; // AutoMapper实例
    public Task_HtyService(IRepository<Dt_Task_Hty> BaseDal, IMapper mapper, ILogger<Task_HtyService> logger) : base(BaseDal)
    {
        _mapper = mapper;
        _logger = logger;
    }
    public bool DeleteAndMoveIntoHty(Dt_Task task, OperateTypeEnum operateType)
    {
       // using var transaction = Db.Ado.UseTran();
        try
        {
           var historyEntity = _mapper.Map<Dt_Task_Hty>(task);
            // 2. å¡«å……历史实体核心字段
            historyEntity.SourceId = task.TaskId;
            historyEntity.OperateType =  App.User?.UserName != null ? OperateTypeEnum.自动完成.ToString() : OperateTypeEnum.人工完成.ToString();
            historyEntity.Creater = App.User?.UserName != null ? App.User.UserName : "System";
            // è¦†ç›–修改人/修改时间(优先级高于映射)
           // historyEntity.Modifier = App.User?.UserId > 0 ? App.User?.UserName : "System";
           // historyEntity.ModifyDate = DateTime.Now;
            // 3. æ’入历史表(类型安全,无反射拼接表名)
            int insertCount = Db.Insertable(historyEntity).ExecuteCommand();
            if (insertCount <= 0)
            {
                _logger.LogError($"任务历史表Dt_Task_Hty [{task.TaskNum}]插入失败,影响行数为0");
               // transaction.RollbackTran();
                return false;
            }
            // 4. åˆ é™¤åŽŸå®žä½“ï¼ˆç±»åž‹å®‰å…¨ï¼‰
            int deleteCount = Db.Deleteable(task).ExecuteCommand();
            if (deleteCount <= 0)
            {
                _logger.LogError("任务业务实体[{0}]删除失败,影响行数为0", task.TaskNum);
              //  transaction.RollbackTran();
                return false;
            }
            //transaction.CommitTran();
            _logger.LogInformation("任务实体[{0}]已成功移入历史表[{1}]并删除原数据", task.TaskNum);
            return true;
        }
        catch (Exception ex)
        {
           // transaction.RollbackTran();
            _logger.LogError(ex, "任务删除实体[{0}]并移入历史表失败", task.TaskNum);
            return false;
        }
    }
}