瀏覽代碼

优化翻译人员更新逻辑及默认值初始化

- 为 `Fin_ForeignReceivablesView.cs` 中布尔属性新增默认值,避免潜在逻辑错误。
- 在 `OfficialActivitiesRepository.cs` 中新增 `isSpecialStatus` 变量,优化对特殊状态的处理逻辑。
- 增强事务处理,新增逻辑删除功能,确保数据一致性。
- 删除冗余代码,统一错误处理逻辑,提升代码可维护性。
- 新增命名空间引用 `System.Net.NetworkInformation`,支持网络相关功能。
Lyyyi 1 天之前
父節點
當前提交
384d5e7854

+ 2 - 2
OASystem/OASystem.Domain/ViewModels/Financial/Fin_ForeignReceivablesView.cs

@@ -362,13 +362,13 @@ namespace OASystem.Domain.ViewModels.Financial
         /// 是否是红色
         /// 应收、已收、收款退还、余款 都为零
         /// </summary>
-        public bool isChangeColorRed { get; set; }
+        public bool isChangeColorRed { get; set; } = false;
 
         /// <summary>
         /// 是否是橙色
         /// 应收、已收、收款退还、余款 都为零 且 团组费用有值时 变色
         /// </summary>
-        public bool isChangeColor { get; set; }
+        public bool isChangeColor { get; set; } = false;
 
         public string ChangeColorLabel { get; set; }
 

+ 95 - 84
OASystem/OASystem.Infrastructure/Repositories/Resource/OfficialActivitiesRepository.cs

@@ -14,6 +14,7 @@ using OASystem.Infrastructure.Tools;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Net.NetworkInformation;
 using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
@@ -248,6 +249,8 @@ FROM
             isInserTranslator = validFields
                 .Any(value => !string.IsNullOrEmpty(value?.Trim()) && !value.Trim().Equals("-"));
 
+            var isSpecialStatus = dto.TranslatorInfo.Id == 147;
+
             if (isInserTranslator)
             {
                 //翻译人员资料
@@ -256,7 +259,7 @@ FROM
                 transInfo.LastUpdateUserId = dto.CreateUserId;
                 transInfo.LastUpdateTime = DateTime.Now;
                 transInfo.CreateUserId = dto.CreateUserId;
-                if (dto.TranslatorIdItem.Any()) transInfo.Id = dto.TranslatorIdItem[0];
+                //if (dto.TranslatorIdItem.Any()) transInfo.Id = dto.TranslatorIdItem[0];
 
                 EncryptionProcessor.EncryptProperties(transInfo);
                 isInserTranslator = true;
@@ -282,43 +285,55 @@ FROM
 
                     if (isInserTranslator)
                     {
-                        //更新排除特殊Id 147
-                        if (translatorId != 147 && translatorId > 0) // 翻译人员资料更新
+                        //更新排除特殊 字符 “后期补录信息”
+                        if (!isSpecialStatus)
                         {
-                            var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(transInfo)
-                                .UpdateColumns(x => new
-                                {
-                                    x.Area,
-                                    x.Name,
-                                    x.Sex,
-                                    x.Tel,
-                                    x.Email,
-                                    x.WechatNo,
-                                    x.OtherSocialAccounts,
-                                    x.Language,
-                                    x.Price,
-                                    x.Currency,
-                                })
-                                .ExecuteCommandAsync();
-
-                            if (tiStatus < 1)
+                            if (translatorId > 0) // 翻译人员资料更新
                             {
-                                _sqlSugar.RollbackTran();
-                                return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = id } };
+                                var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(transInfo)
+                                    .UpdateColumns(x => new
+                                    {
+                                        x.Area,
+                                        x.Name,
+                                        x.Sex,
+                                        x.Tel,
+                                        x.Email,
+                                        x.WechatNo,
+                                        x.OtherSocialAccounts,
+                                        x.Language,
+                                        x.Price,
+                                        x.Currency,
+                                    })
+                                    .ExecuteCommandAsync();
+
+                                if (tiStatus < 1)
+                                {
+                                    _sqlSugar.RollbackTran();
+                                    return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = id } };
+                                }
                             }
-                        }
-                        else //添加翻译人员资料
-                        {
-                            translatorId = await _sqlSugar.Insertable(transInfo).ExecuteReturnIdentityAsync();
-                            if (translatorId == 0)
+                            else //添加翻译人员资料
                             {
-                                _sqlSugar.RollbackTran();
-                                return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = id } };
+                                translatorId = await _sqlSugar.Insertable(transInfo).ExecuteReturnIdentityAsync();
+                                if (translatorId == 0)
+                                {
+                                    _sqlSugar.RollbackTran();
+                                    return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = id } };
+                                }
                             }
                         }
 
                         #region 新增(公务信息关联翻译人员) 关联信息
-
+                        await _sqlSugar.Updateable<Grp_OfficialDutyLinkTranslator>()
+                            .SetColumns(x => new Grp_OfficialDutyLinkTranslator()
+                            {
+                                IsDel = 1,
+                                DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                DeleteUserId = dto.CreateUserId,
+                                Remark = "更新关联,逻辑删除"
+                            })
+                           .Where(x => x.OfficialDutyId == dto.Id)
+                           .ExecuteCommandAsync();
                         var linkStatus = await _sqlSugar
                             .Insertable(new Grp_OfficialDutyLinkTranslator()
                             {
@@ -425,71 +440,67 @@ FROM
                     {
                         #region 更新(公务信息关联翻译人员) 关联信息
 
-                        //更新排除特殊Id 147
-                        if (transInfo.Id != 147 && transInfo.Id > 0) //资料更新
+                        //更新排除特殊 字符 “后期补录信息”
+                        if (!isSpecialStatus)
                         {
-                            var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(transInfo)
-                                .UpdateColumns(x => new
-                                {
-                                    x.Area,
-                                    x.Name,
-                                    x.Sex,
-                                    x.Tel,
-                                    x.Email,
-                                    x.WechatNo,
-                                    x.OtherSocialAccounts,
-                                    x.Language,
-                                    x.Price,
-                                    x.Currency,
-                                })
-                                .ExecuteCommandAsync();
-
-                            if (tiStatus < 1)
+                            if (transInfo.Id > 0) //资料更新
                             {
-                                _sqlSugar.RollbackTran();
-                                return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = dto.Id } };
-                            }
+                                var tiStatus = await _sqlSugar.Updateable<Res_TranslatorLibrary>(transInfo)
+                                    .UpdateColumns(x => new
+                                    {
+                                        x.Area,
+                                        x.Name,
+                                        x.Sex,
+                                        x.Tel,
+                                        x.Email,
+                                        x.WechatNo,
+                                        x.OtherSocialAccounts,
+                                        x.Language,
+                                        x.Price,
+                                        x.Currency,
+                                    })
+                                    .ExecuteCommandAsync();
+
+                                if (tiStatus < 1)
+                                {
+                                    _sqlSugar.RollbackTran();
+                                    return new Result() { Code = -1, Msg = "翻译人员资料更新失败!", Data = new { Id = dto.Id } };
+                                }
 
-                            var dutyLink_select = await _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>()
-                           .Where(x => x.IsDel == 0 && x.OfficialDutyId == dto.Id && x.TranslatorId == transInfo.Id)
-                           .FirstAsync();
-                            if (dutyLink_select == null)
+                            }
+                            else // 添加
                             {
-                                var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
-                                {
-                                    TranslatorId = transInfo.Id,
-                                    OfficialDutyId = dto.Id,
-                                    CreateUserId = dto.CreateUserId,
-                                    Remark = $"公务出访客户资料-->添加"
-                                }).ExecuteCommandAsync();
-                                if (odltStatus < 1)
+                                transInfo.Id = await _sqlSugar.Insertable(transInfo).ExecuteReturnIdentityAsync();
+                                if (transInfo.Id == 0)
                                 {
                                     _sqlSugar.RollbackTran();
-                                    result = new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!" };
+                                    return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = dto.Id } };
                                 }
                             }
                         }
-                        else // 添加
-                        {
-                            transInfo.Id = await _sqlSugar.Insertable(transInfo).ExecuteReturnIdentityAsync();
-                            if (transInfo.Id == 0)
+                        await _sqlSugar.Updateable<Grp_OfficialDutyLinkTranslator>()
+                            .SetColumns(x => new Grp_OfficialDutyLinkTranslator()
                             {
-                                _sqlSugar.RollbackTran();
-                                return new Result() { Code = -1, Msg = "翻译人员资料添加失败!", Data = new { Id = dto.Id } };
-                            }
-                            var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
-                            {
-                                TranslatorId = transInfo.Id,
-                                OfficialDutyId = dto.Id,
-                                CreateUserId = dto.CreateUserId,
-                                Remark = $"公务出访客户资料-->添加"
-                            }).ExecuteCommandAsync();
-                            if (odltStatus < 1)
-                            {
-                                _sqlSugar.RollbackTran();
-                                result = new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!" };
-                            }
+                                IsDel = 1,
+                                DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                DeleteUserId = dto.CreateUserId,
+                                Remark = "更新关联,逻辑删除"
+                            })
+                           .Where(x => x.OfficialDutyId == dto.Id)
+                           .ExecuteCommandAsync();
+                        var odltStatus = await _sqlSugar.Insertable(new Grp_OfficialDutyLinkTranslator()
+                        {
+                            TranslatorId = transInfo.Id,
+                            OfficialDutyId = dto.Id,
+                            CreateUserId = dto.CreateUserId,
+                            Remark = $"公务出访客户资料-->添加"
+                        }).ExecuteCommandAsync();
+                        if (odltStatus < 1)
+                        {
+                            _sqlSugar.RollbackTran();
+                            result = new Result() { Code = -1, Msg = "公务出访关联翻译人员资料添加失败!" };
                         }
+
                         #endregion
                     }