Browse Source

----------公务出访---------- Resource/GetGroupAllList 新增返回集合 TranslatorData(翻译人员) Resource/QueryOfficialActivitiesById 新增返回字段(int 数组) TranslatorIdItem(翻译人员Id) Resource/TranslatorIdItem 更改字段(name:Translators-->TranslatorIdItem;DataType: string-->int 数组) TranslatorIdItem(翻译人员Id) Resource/DelOfficialActivities 新增(公务关联翻译人员)删除逻辑 ----------翻译人员库---------- Resource/TranslatorLibraryInit 更改返回集合 currencyData(币种Data),officialDutyData(公务Data)Resource/TranslatorLibraryInfo 新增返回字段(int数组) officialDutyIdItem(公务出访Ids)Resource/TranslatorLibraryOp 新增请求字段(int数组) officialDutyIdItem(公务出访Ids) Resource/TranslatorLibraryDel 新增(公务关联翻译人员)删除逻辑

LEIYI 4 months ago
parent
commit
25e242b24d

+ 2 - 1
OASystem/EntitySync/Program.cs

@@ -140,7 +140,8 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Pm_GoodsInfo),//物品详细表 
     //typeof(Grp_Opinionaire),//团组接待意见调查 
     //typeof(Sys_ExchangeRateRecord),//团组接待意见调查 
-    typeof(Res_TranslatorLibrary),//翻译人员库 
+    //typeof(Res_TranslatorLibrary),//翻译人员库 
+    typeof(Grp_OfficialDutyLinkTranslator),//公务信息关联翻译人员 
 
 });
 Console.WriteLine("数据库结构同步完成!");

+ 131 - 36
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -1756,7 +1756,9 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
             var data = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.IsDel == 0 && a.STid == 38).ToList();
 
             var _DeleFile = _sqlSugar.Queryable<Grp_DeleFile>().Where(a => a.Diid == dto.DiId && a.IsDel == 0 && a.Category == 970).ToList();
-            return Ok(JsonView(true, "查询成功!", new { Delegation = groupInfos, SetData = data, DeleFile = _DeleFile }));
+
+            var translatorData = _sqlSugar.Queryable<Res_TranslatorLibrary>().Where(a => a.IsDel == 0).Select(x => new { x.Id, x.Name }).ToList();
+            return Ok(JsonView(true, "查询成功!", new { Delegation = groupInfos, SetData = data, DeleFile = _DeleFile , TranslatorData = translatorData }));
         }
 
         /// <summary>
@@ -1770,6 +1772,7 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
         {
             return Ok(await _officialActivitiesRep.QueryOfficialActivitiesByDiId(dto));
         }
+
         /// <summary>
         /// 根据公务出访数据Id查询数据
         /// </summary>
@@ -1779,20 +1782,12 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> QueryOfficialActivitiesById(OfficialActivitiesDiIdDto dto)
         {
-            try
-            {
-                Result groupData = await _officialActivitiesRep.QueryOfficialActivitiesById(dto);
-                if (groupData.Code != 0)
-                {
-                    return Ok(JsonView(false, groupData.Msg));
-                }
-                return Ok(JsonView(true, groupData.Msg, groupData.Data));
-            }
-            catch (Exception ex)
+            Result groupData = await _officialActivitiesRep.QueryOfficialActivitiesById(dto);
+            if (groupData.Code != 0)
             {
-                return Ok(JsonView(false, "程序错误!"));
-                throw;
+                return Ok(JsonView(false, groupData.Msg));
             }
+            return Ok(JsonView(true, groupData.Msg, groupData.Data));
         }
 
         /// <summary>
@@ -2129,20 +2124,28 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> DelOfficialActivities(DelBaseDto dto)
         {
-            try
-            {
-                var res = await _officialActivitiesRep.SoftDeleteByIdAsync<Res_OfficialActivities>(dto.Id.ToString(), dto.DeleteUserId);
-                if (!res)
-                {
-                    return Ok(JsonView(false, "删除失败"));
-                }
-                return Ok(JsonView(true, "删除成功!"));
-            }
-            catch (Exception ex)
+
+            _sqlSugar.BeginTran();
+            var res = await _officialActivitiesRep.SoftDeleteByIdAsync<Res_OfficialActivities>(dto.Id.ToString(), dto.DeleteUserId);
+            if (!res)
             {
-                return Ok(JsonView(false, "程序错误!"));
-                throw;
+                _sqlSugar.RollbackTran();
+                return Ok(JsonView(false, "删除失败"));
             }
+
+            #region 删除公务出访
+            await _sqlSugar.Updateable<Grp_OfficialDutyLinkTranslator>()
+                           .SetColumns(x => new Grp_OfficialDutyLinkTranslator()
+                           {
+                               DeleteUserId = dto.DeleteUserId,
+                               DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                               IsDel = 1
+                           })
+                           .Where(x => x.OfficialDutyId == dto.Id)
+                           .ExecuteCommandAsync();
+            #endregion
+            _sqlSugar.CommitTran();
+            return Ok(JsonView(true, "删除成功!"));
         }
 
         /// <summary>
@@ -2809,13 +2812,24 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> TranslatorLibraryInit()
         {
-            var view = await _sqlSugar.Queryable<Sys_SetData>()
+            var currencyData = await _sqlSugar.Queryable<Sys_SetData>()
                 .Where(x => x.IsDel == 0 && x.STid == 66)
                 .Select(x => new {
                     x.Id,
                     x.Name,
                 })
                 .ToListAsync();
+            var officialDutyData = await _sqlSugar.Queryable<Res_OfficialActivities>()
+                .Where(x => x.IsDel == 0)
+                .Select(x => new {
+                    x.Id,
+                    x.Client,
+                })
+                .ToListAsync();
+            var view = new { 
+                currencyData = currencyData,
+                officialDutyData = officialDutyData
+            };
 
             return Ok(JsonView(view));
         }
@@ -2832,11 +2846,13 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
         {
             if (id <1 ) return Ok(JsonView(false,"请传入有效的Id!"));
 
-            var view = await _translatorRep.Query(x => x.Id == id).FirstAsync();
+            var info = await _translatorRep.Query(x => x.Id == id).FirstAsync();
 
-            var view1 = _mapper.Map<TranslatorLibraryInfoView>(view);
+            var view = _mapper.Map<TranslatorLibraryInfoView>(info);
 
-            return Ok(JsonView(view1));
+            view.OfficialDutyIdItem = await _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>().Where(x => x.TranslatorId == id).Select(x => x.Id).ToArrayAsync();
+
+            return Ok(JsonView(view));
         }
 
 
@@ -2940,7 +2956,7 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
 
             #endregion
 
-
+            _sqlSugar.BeginTran();
             if (dto.Status == 1)
             {
                 //验证重复
@@ -2954,8 +2970,30 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
                     translatorInfo.Files = JsonConvert.SerializeObject(fileNames);
                 }
 
-                var add = await _translatorRep.AddAsync(translatorInfo);
-                if (add > 0) return Ok(JsonView(true));
+                var id = await _translatorRep.AddAsync(translatorInfo);
+                if (id > 0) {
+
+                    #region 新增(公务信息关联翻译人员) 关联信息
+                    var officialDutyLinkTranslators = new List<Grp_OfficialDutyLinkTranslator>();
+                    foreach (var translatorId in dto.officialDutyIdItem)
+                    {
+                        officialDutyLinkTranslators.Add(new Grp_OfficialDutyLinkTranslator()
+                        {
+                            TranslatorId = translatorId,
+                            OfficialDutyId = id,
+                            CreateUserId = currUserInfo.UserId,
+                            Remark = $"翻译人员库-->添加"
+                        });
+                    }
+                    if (officialDutyLinkTranslators.Count > 0)
+                    {
+                        await _sqlSugar.Insertable(officialDutyLinkTranslators).ExecuteCommandAsync();
+                    }
+
+                    #endregion
+                    _sqlSugar.CommitTran();
+                    return Ok(JsonView(true));
+                }
             }
             else if (dto.Status == 2)
             {
@@ -2998,9 +3036,51 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
                         Files = translatorInfo.Files,
                     });
 
-                if (upd) return Ok(JsonView(true));
-            }
+                if (upd) {
+                    #region 更新(公务信息关联翻译人员) 关联信息
+
+                    var officialDutyLinkTranslators_select = await _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>()
+                        .Where(x => x.IsDel == 0 && x.TranslatorId == dto.Id)
+                        .ToListAsync();
 
+                    //删除
+                    var officialDutyLinkTranslatorIds = officialDutyLinkTranslators_select.Select(x => x.Id).ToList();
+                    if (officialDutyLinkTranslatorIds.Count > 0)
+                    {
+                        await _sqlSugar.Updateable<Grp_OfficialDutyLinkTranslator>()
+                            .SetColumnsIF(officialDutyLinkTranslatorIds.Count > 0, x => new Grp_OfficialDutyLinkTranslator()
+                            {
+                                DeleteUserId = currUserInfo.UserId,
+                                DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                IsDel = 1
+                            })
+                            .Where(x => officialDutyLinkTranslatorIds.Contains(x.Id))
+                            .ExecuteCommandAsync();
+                    }
+
+                    //添加
+                    var officialDutyLinkTranslators = new List<Grp_OfficialDutyLinkTranslator>();
+                    foreach (var translatorId in dto.officialDutyIdItem)
+                    {
+                        officialDutyLinkTranslators.Add(new Grp_OfficialDutyLinkTranslator()
+                        {
+                            TranslatorId = translatorId,
+                            OfficialDutyId = dto.Id,
+                            CreateUserId = currUserInfo.UserId,
+                            Remark = $"翻译人员库-->更新"
+                        });
+                    }
+                    if (officialDutyLinkTranslators.Count > 0)
+                    {
+                        await _sqlSugar.Insertable(officialDutyLinkTranslators).ExecuteCommandAsync();
+                    }
+
+                    #endregion
+                    _sqlSugar.CommitTran();
+                    return Ok(JsonView(true));
+                }
+            }
+            _sqlSugar.RollbackTran();
             return Ok(JsonView(false));
         }
 
@@ -3020,9 +3100,24 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
             var currUserInfo = JwtHelper.SerializeJwt(HttpContext.Request.Headers.Authorization);
             if (currUserInfo == null) return Ok(JsonView(false, "请传入token!"));
 
+            _sqlSugar.BeginTran();
             var upd = await _translatorRep.SoftDeleteByIdAsync<Res_TranslatorLibrary>(id.ToString(), currUserInfo.UserId);
-            if (!upd) return Ok(JsonView(false));
-
+            if (!upd) {
+                _sqlSugar.RollbackTran();
+                return Ok(JsonView(false));
+            }
+
+            #region 删除公务出访
+            await _sqlSugar.Updateable<Grp_OfficialDutyLinkTranslator>()
+                           .SetColumns(x => new Grp_OfficialDutyLinkTranslator() { 
+                               DeleteUserId = currUserInfo.UserId, 
+                               DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), 
+                               IsDel = 1
+                           })
+                           .Where(x => x.TranslatorId == id)
+                           .ExecuteCommandAsync();
+            #endregion
+            _sqlSugar.CommitTran();
             return Ok(JsonView(true));
         }
 

+ 0 - 1
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -2526,7 +2526,6 @@ And u.UId = {0} And u.FId = 1 ", dto.UserId);
                 }
                 else if (department.Equals("财务部"))//总经办
                 {
-
                     #region 团组收款数据
                     var groupCollectionData = await _sqlSugar.Queryable<Fin_ForeignReceivables>()
                         .LeftJoin<Sys_Users>((fr, u) => fr.CreateUserId == u.Id)

+ 2 - 2
OASystem/OASystem.Domain/Dtos/Resource/OfficialActivitiesDto.cs

@@ -84,9 +84,9 @@ namespace OASystem.Domain.Dtos.Resource
         /// </summary>
         public int IsNeedTrans { get; set; }
         /// <summary>
-        /// 翻译人员
+        /// 翻译人员Id
         /// </summary>
-        public string Translators { get; set; }
+        public int[] TranslatorIdItem { get; set; }
         /// <summary>
         /// 翻译语种
         /// </summary>

+ 5 - 0
OASystem/OASystem.Domain/Dtos/Resource/TranslatorLibraryDto.cs

@@ -27,6 +27,11 @@ namespace OASystem.Domain.Dtos.Resource
 
         public int Id { get; set; }
 
+        /// <summary>
+        /// 公务出访Ids
+        /// </summary>
+        public int[] officialDutyIdItem { get; set; }
+
         /// <summary>
         /// 所在地区
         /// </summary>

+ 27 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_OfficialDutyLinkTranslator.cs

@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    /// <summary>
+    /// 公务信息关联翻译人员
+    /// </summary>
+    [SugarTable("Grp_OfficialDutyLinkTranslator")]
+    public class Grp_OfficialDutyLinkTranslator : EntityBase
+    {
+        /// <summary>
+        /// 公务出访客户资料Id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "公务出访客户资料Id", IsNullable = true, ColumnDataType = "int")]
+        public int OfficialDutyId { get; set; }
+
+        /// <summary>
+        /// 翻译人员Id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "翻译人员Id", IsNullable = true, ColumnDataType = "int")]
+        public int TranslatorId { get; set; }
+    }
+}

+ 4 - 0
OASystem/OASystem.Domain/ViewModels/Resource/OfficialActivitiesView.cs

@@ -10,6 +10,10 @@ namespace OASystem.Domain.ViewModels.Resource
 {
     public class OfficialActivitiesView : Res_OfficialActivities
     {
+        /// <summary>
+        /// 翻译人员Id 
+        /// </summary>
+        public int[] TranslatorIdItem { get; set; }
 
         public List<string> ScreenshotOfMailUrls
         {

+ 4 - 0
OASystem/OASystem.Domain/ViewModels/Resource/TranslatorLibraryView.cs

@@ -109,6 +109,10 @@ namespace OASystem.Domain.ViewModels.Resource
             }
         }
 
+        /// <summary>
+        /// 公务出访Id集合
+        /// </summary>
+        public int[] OfficialDutyIdItem { get; set; }
 
         /// <summary>
         /// 备注

+ 66 - 2
OASystem/OASystem.Infrastructure/Repositories/Resource/OfficialActivitiesRepository.cs

@@ -162,6 +162,11 @@ FROM
                 var OfficialActivities = await _sqlSugar.SqlQueryable<OfficialActivitiesView>(sql)
                     .FirstAsync();
                 //OfficialActivities.ScreenshotOfMailUrls.ForEach(url => { url = AppSettingsHelper.Get("GrpFileBaseUrl") + url; });
+
+                OfficialActivities.TranslatorIdItem = _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>()
+                    .Where(x => x.IsDel == 0 && x.OfficialDutyId == dto.Id)
+                    .Select(x => x.TranslatorId)
+                    .ToArray();
                 result = new Result() { Code = 0, Msg = "查询成功!", Data = OfficialActivities };
 
             }
@@ -225,7 +230,6 @@ FROM
                 }
                 else//不存在,可添加
                 {
-
                     Res_OfficialActivities _InvitationOfficialActivityData = _mapper.Map<Res_OfficialActivities>(dto);
                     int id = await _sqlSugar.Insertable(_InvitationOfficialActivityData).ExecuteReturnIdentityAsync();
                     if (id == 0)
@@ -235,6 +239,25 @@ FROM
                     }
                     else
                     {
+                        #region 新增(公务信息关联翻译人员) 关联信息
+                        var officialDutyLinkTranslators = new List<Grp_OfficialDutyLinkTranslator>();
+                        foreach (var translatorId in dto.TranslatorIdItem)
+                        {
+                            officialDutyLinkTranslators.Add(new Grp_OfficialDutyLinkTranslator() {
+                                TranslatorId = translatorId,
+                                OfficialDutyId = id,
+                                CreateUserId = dto.CreateUserId,
+                                Remark = $"公务出访客户资料-->添加"
+                            });
+                        }
+                        if (officialDutyLinkTranslators.Count > 0)
+                        {
+                            await _sqlSugar.Insertable(officialDutyLinkTranslators).ExecuteCommandAsync();
+                        }
+
+                        #endregion
+
+
                         _sqlSugar.CommitTran();
                         result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
                     }
@@ -261,7 +284,7 @@ FROM
                     Dresscode = dto.Dresscode,
                     Attendees = dto.Attendees,
                     IsNeedTrans = dto.IsNeedTrans,
-                    Translators = dto.Translators,
+                    //Translators = dto.Translators,
                     Language = dto.language,
                     Trip = dto.Trip,
                     CreateUserId = dto.CreateUserId,
@@ -274,6 +297,47 @@ FROM
                 });
                 if (res)
                 {
+
+                    #region 更新(公务信息关联翻译人员) 关联信息
+
+                    var officialDutyLinkTranslators_select = await _sqlSugar.Queryable<Grp_OfficialDutyLinkTranslator>()
+                        .Where(x => x.IsDel == 0 && x.OfficialDutyId == dto.Id)
+                        .ToListAsync();
+
+                    //删除
+                    var officialDutyLinkTranslatorIds = officialDutyLinkTranslators_select.Select(x => x.Id).ToList();
+                    if (officialDutyLinkTranslatorIds.Count > 0)
+                    {
+                        await _sqlSugar.Updateable<Grp_OfficialDutyLinkTranslator>()
+                            .SetColumnsIF(officialDutyLinkTranslatorIds.Count > 0, x => new Grp_OfficialDutyLinkTranslator()
+                            {
+                                DeleteUserId = dto.CreateUserId,
+                                DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                IsDel = 1
+                            })
+                            .Where(x => officialDutyLinkTranslatorIds.Contains(x.Id))
+                            .ExecuteCommandAsync();
+                    }
+
+                    //添加
+                    var officialDutyLinkTranslators = new List<Grp_OfficialDutyLinkTranslator>();
+                    foreach (var translatorId in dto.TranslatorIdItem)
+                    {
+                        officialDutyLinkTranslators.Add(new Grp_OfficialDutyLinkTranslator()
+                        {
+                            TranslatorId = translatorId,
+                            OfficialDutyId = dto.Id,
+                            CreateUserId = dto.CreateUserId,
+                            Remark = $"公务出访客户资料-->更新"
+                        });
+                    }
+                    if (officialDutyLinkTranslators.Count > 0)
+                    {
+                        await _sqlSugar.Insertable(officialDutyLinkTranslators).ExecuteCommandAsync();
+                    }
+
+                    #endregion
+                    
                     _sqlSugar.CommitTran();
                     result = new Result() { Code = 0, Msg = "修改成功!", Data = new { Id = dto.Id } };
                 }