Browse Source

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

yuanrf 1 month ago
parent
commit
5d3919c07b
20 changed files with 938 additions and 152 deletions
  1. 5 2
      OASystem/EntitySync/Program.cs
  2. 307 38
      OASystem/OASystem.Api/Controllers/GroupsController.cs
  3. 86 25
      OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs
  4. 7 16
      OASystem/OASystem.Api/Controllers/SystemController.cs
  5. 7 0
      OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs
  6. 6 1
      OASystem/OASystem.Domain/Dtos/Groups/EnterExitCostDto.cs
  7. 18 0
      OASystem/OASystem.Domain/Dtos/Groups/GroupOrderPreInfoDtos.cs
  8. 9 4
      OASystem/OASystem.Domain/Entities/Groups/Grp_OrderInfo.cs
  9. 34 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_OrderPreItem.cs
  10. 2 2
      OASystem/OASystem.Domain/Entities/PersonnelModule/Pm_TaskJobRelevancy.cs
  11. 52 0
      OASystem/OASystem.Domain/Entities/System/Sys_FormTemp.cs
  12. 0 4
      OASystem/OASystem.Domain/ViewModels/Groups/EnterExitCostDraftView.cs
  13. 103 0
      OASystem/OASystem.Domain/ViewModels/Groups/OrderPreInfoView.cs
  14. 1 0
      OASystem/OASystem.Infrastructure/OASystem.Infrastructure.csproj
  15. 237 0
      OASystem/OASystem.Infrastructure/Repositories/Groups/GroupOrderPreInfoRepository.cs
  16. 2 2
      OASystem/OASystem.Infrastructure/Repositories/Groups/VisaFeeInfoRepository.cs
  17. 2 0
      OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/GoodsRepository.cs
  18. 32 19
      OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/TaskAllocationRepository.cs
  19. 1 1
      OASystem/OASystem.Infrastructure/Repositories/Resource/TicketBlackCodeRepository.cs
  20. 27 38
      OASystem/OASystem.Infrastructure/Repositories/System/SetDataRepository.cs

+ 5 - 2
OASystem/EntitySync/Program.cs

@@ -150,5 +150,8 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Grp_RestaurantInfo),
     //typeof(Grp_RestaurantInfo),
     //ypeof(Grp_EnterExitCostQuote), //团组 - 出入境费用报价表
     //ypeof(Grp_EnterExitCostQuote), //团组 - 出入境费用报价表
     //ypeof(Grp_EnterExitCostQuoteItem), //团组 - 出入境费用报价表
     //ypeof(Grp_EnterExitCostQuoteItem), //团组 - 出入境费用报价表
-});
-Console.WriteLine("数据库结构同步完成!");
+    typeof(Sys_FormTemp), //表单模板
+    typeof(Grp_OrderPreInfo), //团组下单前信息
+    typeof(Grp_OrderPreItem), //团组下单前信息Item
+}); 
+Console.WriteLine("数据库结构同步完成!");

+ 307 - 38
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -3,9 +3,12 @@ using Aspose.Words;
 using Aspose.Words.Drawing;
 using Aspose.Words.Drawing;
 using Aspose.Words.Tables;
 using Aspose.Words.Tables;
 using DiffMatchPatch;
 using DiffMatchPatch;
+using EyeSoft.Runtime.InteropServices;
 using Microsoft.AspNetCore.SignalR;
 using Microsoft.AspNetCore.SignalR;
+using Microsoft.IdentityModel.Tokens;
 using Microsoft.VisualBasic;
 using Microsoft.VisualBasic;
 using MySqlX.XDevAPI.Relational;
 using MySqlX.XDevAPI.Relational;
+using NetTaste;
 using NPOI.HSSF.UserModel;
 using NPOI.HSSF.UserModel;
 using NPOI.SS.Formula.Functions;
 using NPOI.SS.Formula.Functions;
 using NPOI.SS.UserModel;
 using NPOI.SS.UserModel;
@@ -31,10 +34,13 @@ using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.ViewModels.Financial;
 using OASystem.Domain.ViewModels.Financial;
 using OASystem.Domain.ViewModels.Groups;
 using OASystem.Domain.ViewModels.Groups;
 using OASystem.Domain.ViewModels.QiYeWeChat;
 using OASystem.Domain.ViewModels.QiYeWeChat;
+using OASystem.Domain.ViewModels.Statistics;
 using OASystem.Infrastructure.Repositories.CRM;
 using OASystem.Infrastructure.Repositories.CRM;
 using OASystem.Infrastructure.Repositories.Financial;
 using OASystem.Infrastructure.Repositories.Financial;
 using OASystem.Infrastructure.Repositories.Groups;
 using OASystem.Infrastructure.Repositories.Groups;
 using OASystem.Infrastructure.Tools;
 using OASystem.Infrastructure.Tools;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Utilities;
 using Quartz.Util;
 using Quartz.Util;
 using SqlSugar.Extensions;
 using SqlSugar.Extensions;
 using System.Collections;
 using System.Collections;
@@ -43,6 +49,8 @@ using System.Diagnostics;
 using System.Globalization;
 using System.Globalization;
 using System.IO.Compression;
 using System.IO.Compression;
 using System.Text.Json;
 using System.Text.Json;
+using System.Web;
+using System.Xml.Linq;
 using TencentCloud.Ocr.V20181119.Models;
 using TencentCloud.Ocr.V20181119.Models;
 using static OASystem.API.OAMethodLib.JWTHelper;
 using static OASystem.API.OAMethodLib.JWTHelper;
 using static OASystem.Infrastructure.Repositories.Groups.AirTicketResRepository;
 using static OASystem.Infrastructure.Repositories.Groups.AirTicketResRepository;
@@ -108,6 +116,7 @@ namespace OASystem.API.Controllers
         private readonly EnterExitCostDraftRepository _enterExitCostDraftRep;
         private readonly EnterExitCostDraftRepository _enterExitCostDraftRep;
         private readonly RestaurantRepository _restaurantRep;
         private readonly RestaurantRepository _restaurantRep;
         private readonly EnterExitCostQuoteRepository _enterExitCostQuoteRep;
         private readonly EnterExitCostQuoteRepository _enterExitCostQuoteRep;
+        private readonly GroupOrderPreInfoRepository _grpOrderPreInfoRep;
 
 
         /// <summary>
         /// <summary>
         /// 构造函数
         /// 构造函数
@@ -191,7 +200,8 @@ namespace OASystem.API.Controllers
             TableOperationRecordRepository tableorRep,
             TableOperationRecordRepository tableorRep,
             EnterExitCostDraftRepository enterExitCostDraftRep,
             EnterExitCostDraftRepository enterExitCostDraftRep,
             RestaurantRepository restaurantRep,
             RestaurantRepository restaurantRep,
-            EnterExitCostQuoteRepository enterExitCostQuoteRep
+            EnterExitCostQuoteRepository enterExitCostQuoteRep,
+            GroupOrderPreInfoRepository grpOrderPreInfoRep
             )
             )
         {
         {
             _logger = logger;
             _logger = logger;
@@ -249,6 +259,7 @@ namespace OASystem.API.Controllers
             _enterExitCostDraftRep = enterExitCostDraftRep;
             _enterExitCostDraftRep = enterExitCostDraftRep;
             _restaurantRep = restaurantRep;
             _restaurantRep = restaurantRep;
             _enterExitCostQuoteRep = enterExitCostQuoteRep;
             _enterExitCostQuoteRep = enterExitCostQuoteRep;
+            _grpOrderPreInfoRep = grpOrderPreInfoRep;
 
 
         }
         }
 
 
@@ -381,6 +392,198 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(false, "添加失败!"));
             return Ok(JsonView(false, "添加失败!"));
         }
         }
 
 
+        #endregion
+
+        #region 团组前期信息
+
+        /// <summary>
+        ///  团组前期信息 Init
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupOrderPreInfo()
+        {
+            return Ok(await _grpOrderPreInfoRep.DataInit());
+        }
+
+        /// <summary>
+        ///  国家数据源
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> CountryInit()
+        {
+            var countrys = await _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(x => x.IsDel == 0).Select(x => x.Country).Distinct().ToListAsync();
+            return Ok(JsonView(countrys));
+        }
+
+        /// <summary>
+        ///  城市数据源
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("{countryLabel}")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> CityByCountry(string countryLabel)
+        {
+
+            countryLabel=HttpUtility.UrlDecode(countryLabel);
+            var countryList = countryLabel.Split(',', StringSplitOptions.RemoveEmptyEntries).ToArray();
+            var citys = Array.Empty<string?>();
+            if (countryList.Any())
+            {
+                var cityDatas = await _sqlSugar
+                    .Queryable<Grp_NationalTravelFee>()
+                    .Where(x => x.IsDel == 0 && countryList.Contains(x.Country) && !string.IsNullOrEmpty(x.City))
+                    .ToArrayAsync();
+
+                foreach (var item in cityDatas)
+                {
+                    if (item.City.Contains("城市"))
+                    {
+                        item.City = item.Country + "-所有城市";
+                    }
+                }
+                var cityDatas1 = cityDatas.OrderBy(x => x.Country);
+
+                citys = cityDatas1.Select(x => x.City).Distinct().ToArray();
+            }
+            
+            return Ok(JsonView(citys));
+        }
+
+        /// <summary>
+        ///  团组前期信息 Info
+        /// </summary>
+        /// <param name="id">Id</param>
+        /// <param name="tempId">Id</param>
+        /// <returns></returns>
+        [HttpGet("{id}/{tempId}")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupOrderPreInfo(int id,int tempId = 1404)
+        {
+            return Ok(await _grpOrderPreInfoRep.InfoAsync(id, tempId));
+        }
+
+        /// <summary>
+        ///  团组前期信息 Save
+        /// </summary>
+        /// <param name="dto">Id</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupOrderPreInfoSave(GroupOrderPreInfoOpDto dto)
+        {
+            return Ok(await _grpOrderPreInfoRep.OpAsync(dto));
+        }
+
+        /// <summary>
+        ///  团组前期信息 文件下载
+        /// </summary>
+        /// <param name="id">Id</param>
+        /// <param name="tempId">Id</param>
+        /// <returns></returns>
+        [HttpGet("{id}/{tempId}")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupOrderPreInfoFileDownload(int id, int tempId = 1404)
+        {
+            var view = await _grpOrderPreInfoRep.InfoAsync(id, tempId);
+
+            var data = view.Data as GrpOrderPreInfoView;
+
+            #region Excel
+            var tempPath = AppSettingsHelper.Get("ExcelTempPath");
+            var servicePath = AppSettingsHelper.Get("GrpFileBaseUrl");
+            var savePath = AppSettingsHelper.Get("ExcelBasePath") + "GroupOrderPreInfo/";
+            var ftpPath = AppSettingsHelper.Get("ExcelFtpPath") + "GroupOrderPreInfo/";
+            var fileNamePrefix = string.Empty;
+
+            if (tempId == 1405)
+            {
+                tempPath += $"前期需客户提供信息_无商邀版Temp.xlsx";
+                fileNamePrefix = $"{data.Name}_无商邀版";
+
+            }
+            else if (tempId == 1406)
+            {
+                tempPath += $"前期需客户提供信息_有商邀版Temp.xlsx";
+                fileNamePrefix = $"{data.Name}_有商邀版";
+            }
+            else
+            { 
+                //tempId == 1404 默认下载
+                tempPath += $"前期需客户提供信息_单接送机Temp.xlsx";
+                fileNamePrefix = $"{data.Name}_单接送机";
+            }
+
+            foreach (var item in data.Items)
+            {
+                var obj = item.NewValue;
+
+                if (obj == null) item.OriginVal = "";
+                else if (obj.Equals("有") || obj.Equals("无"))
+                {
+                    item.OriginVal = obj.ToString();
+                }
+                else if (obj is object[] objArray)
+                {
+                    string[] stringArray = Array.ConvertAll(objArray, item => item?.ToString() ?? string.Empty);
+                    item.OriginVal = string.Join("、", stringArray);
+                }
+                else if (obj is string[] stringArray)
+                {
+                    item.OriginVal = string.Join("、", stringArray);
+                } else if (obj.Equals("-"))
+                {
+                    item.OriginVal = "";
+                }
+            }
+
+            var fileName = $"{fileNamePrefix}{CommonFun.GUID}.xlsx";
+
+            fileName = CommonFun.ValidFileName(fileName);
+
+            //载入模板
+            WorkbookDesigner designer = new WorkbookDesigner();
+            designer.Workbook = new Workbook(tempPath);
+
+            if (tempId == 1406)
+            {
+                var view1 = data.Items.Where(x => x.Index < 11).ToArray();
+                var view2 = data.Items.Where(x => x.Index > 10).ToArray();
+
+                for (int i = 1; i <= view2.Length; i++)
+                {
+                    view2[i - 1].Index = i;
+                }
+
+                designer.SetDataSource("View1", view1);
+                designer.SetDataSource("View2", view2);
+            }
+            else
+            {
+                designer.SetDataSource("View", data.Items);
+            }
+
+                
+            designer.Process();
+
+            if (!Directory.Exists(savePath))
+            {
+                Directory.CreateDirectory(savePath);
+            }
+
+            string serverPath = $"{savePath}{fileName}";
+            designer.Workbook.Save(serverPath);
+            string rst = $"{servicePath}{ftpPath}{fileName}";
+
+            #endregion
+
+            return Ok(JsonView(new { url = rst }));
+        }
+
+
         #endregion
         #endregion
 
 
         #region 团组基本信息
         #region 团组基本信息
@@ -5607,7 +5810,6 @@ FROM
                     peiceItemCurrencyInfos = enterExitCostCurrencys.Where(x => peiceItemCurrencys.Contains(x.CurrencyCode)).ToList();
                     peiceItemCurrencyInfos = enterExitCostCurrencys.Where(x => peiceItemCurrencys.Contains(x.CurrencyCode)).ToList();
                 }
                 }
 
 
-
                 var _CurrDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.STid == 66).ToList();
                 var _CurrDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.STid == 66).ToList();
                 var _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == dto.DiId).First();
                 var _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == dto.DiId).First();
                 var DeleClientList = _sqlSugar.Queryable<Grp_TourClientList>()
                 var DeleClientList = _sqlSugar.Queryable<Grp_TourClientList>()
@@ -9061,7 +9263,8 @@ FROM
 FROM
 FROM
   Grp_DelegationInfo di
   Grp_DelegationInfo di
 WHERE
 WHERE
-  di.Isdel = 0 ", dto.CurrUserId);
+  di.Isdel = 0 
+  ORDER BY di.VisitStartDate DESC", dto.CurrUserId);
 
 
             var data = await _sqlSugar.SqlQueryable<EnterExitCostMobileGroupView>(sql)
             var data = await _sqlSugar.SqlQueryable<EnterExitCostMobileGroupView>(sql)
                 .Where(x => !string.IsNullOrEmpty(x.GroupName))
                 .Where(x => !string.IsNullOrEmpty(x.GroupName))
@@ -9070,6 +9273,16 @@ WHERE
                 .OrderByDescending(x => x.Id)
                 .OrderByDescending(x => x.Id)
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
 
 
+            var basicUserId = await _enterExitCostRep.PermissionViewUsersAsync();
+
+            if (basicUserId.Any(x => x.Id == dto.CurrUserId))
+            {
+                foreach (var item in data)
+                {
+                    item.IsView = true;
+                }
+            }
+            
             return Ok(JsonView(true, "查询成功!", data, total));
             return Ok(JsonView(true, "查询成功!", data, total));
         }
         }
 
 
@@ -9314,15 +9527,25 @@ WHERE
             (bool isView, string msg) = await _enterExitCostRep.MobilePermissionsValidationAsync(dto.DiId, dto.CurrUserId);
             (bool isView, string msg) = await _enterExitCostRep.MobilePermissionsValidationAsync(dto.DiId, dto.CurrUserId);
             if (!isView) return Ok(JsonView(false, msg));
             if (!isView) return Ok(JsonView(false, msg));
 
 
-            var userIds = Array.Empty<int>();
-
-            userIds = await _sqlSugar
+            var userIds = await _sqlSugar
                 .Queryable<Grp_EnterExitCostPermission>()
                 .Queryable<Grp_EnterExitCostPermission>()
                 .Where(x => x.IsDel == 0 && x.GroupId == dto.DiId)
                 .Where(x => x.IsDel == 0 && x.GroupId == dto.DiId)
                 .Select(x => x.UserId)
                 .Select(x => x.UserId)
                 .ToArrayAsync();
                 .ToArrayAsync();
 
 
-            return Ok(userIds);
+            var perUsers = await _enterExitCostRep.PermissionViewUsersAsync();
+
+            var perUsersView = new List<dynamic>();
+
+            foreach (var item in perUsers)
+            {
+                bool isView1 = false;
+
+                if (userIds.Any(x => x == item.Id)) isView1 = true;
+                perUsersView.Add(new { Id = item.Id, Name = item.Name, IsView = isView1 });
+            }
+
+            return Ok(JsonView(perUsersView));
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -9632,23 +9855,20 @@ WHERE
             }
             }
             if (permissions.Any())
             if (permissions.Any())
             {
             {
-                _sqlSugar.BeginTran();
-                try
+                if (!permissions.Any(x => x.UserId == dto.CurrUserId))
                 {
                 {
-                    await _sqlSugar.Deleteable<Grp_EnterExitCostPermission>().Where(it => it.GroupId == dto.DiId).ExecuteCommandAsync();
-
-                    var result = await _sqlSugar.Insertable(permissions).ExecuteCommandAsync();
-                    if (result < 1)
-                    {
-                        _sqlSugar.RollbackTran();
-                        return Ok(JsonView(false));
-                    }
+                    permissions.Add(new Grp_EnterExitCostPermission { Permission = 1, GroupId = dto.DiId, UserId = dto.CurrUserId, CreateUserId = dto.CurrUserId });
                 }
                 }
-                catch (Exception ex)
-                {
 
 
+                _sqlSugar.BeginTran();
+
+                await _sqlSugar.Deleteable<Grp_EnterExitCostPermission>().Where(it => it.GroupId == dto.DiId).ExecuteCommandAsync();
+
+                var result = await _sqlSugar.Insertable(permissions).ExecuteCommandAsync();
+                if (result < 1)
+                {
                     _sqlSugar.RollbackTran();
                     _sqlSugar.RollbackTran();
-                    return Ok(JsonView(false, ex.Message));
+                    return Ok(JsonView(false));
                 }
                 }
                 _sqlSugar.CommitTran();
                 _sqlSugar.CommitTran();
                 return Ok(JsonView(true));
                 return Ok(JsonView(true));
@@ -10412,12 +10632,12 @@ WHERE
                 .Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.TeamName))
                 .Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.TeamName))
                 .WhereIF(!string.IsNullOrEmpty(dto.GroupName) && diId > 0, x => x.Id == diId)
                 .WhereIF(!string.IsNullOrEmpty(dto.GroupName) && diId > 0, x => x.Id == diId)
                 .WhereIF(!string.IsNullOrEmpty(dto.GroupName) && !status, x => x.TeamName.Contains(dto.GroupName))
                 .WhereIF(!string.IsNullOrEmpty(dto.GroupName) && !status, x => x.TeamName.Contains(dto.GroupName))
+                .OrderByDescending(x => x.VisitStartDate)
                 .Select(x => new
                 .Select(x => new
                 {
                 {
                     Id = x.Id,
                     Id = x.Id,
                     GroupName = x.TeamName
                     GroupName = x.TeamName
                 })
                 })
-                .OrderByDescending(x => x.Id)
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
 
 
             return Ok(JsonView(true, "查询成功!", data, total));
             return Ok(JsonView(true, "查询成功!", data, total));
@@ -10605,7 +10825,9 @@ WHERE
             if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
             if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
 
 
             mobileInfo = _mapper.Map<EnterExitCostDraftMobileParentInfoView>(eecInfo);
             mobileInfo = _mapper.Map<EnterExitCostDraftMobileParentInfoView>(eecInfo);
+
             mobileInfo.IsAssignPerm = assignPerm;
             mobileInfo.IsAssignPerm = assignPerm;
+
             var dayAndCostData = _sqlSugar.Queryable<Grp_DayAndCostDraft>()
             var dayAndCostData = _sqlSugar.Queryable<Grp_DayAndCostDraft>()
                 .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
                 .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
                 .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
                 .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
@@ -10938,6 +11160,56 @@ WHERE
             return parentId;
             return parentId;
         }
         }
 
 
+        /// <summary>
+        /// 团组模块 - 出入境费用-草稿-移动端 - 查看权限用户
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> EnterExitCostDraftMobileViewPermissionUsers(EnterExitCostDraftMobileViewPermissionUsersDto dto)
+        {
+            if (dto.DraftId < 1) return Ok(JsonView(false, MsgTips.Id));
+            if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
+
+            //验证查看权限
+            (bool isView, bool isSet) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
+            if (!isView) return Ok(JsonView(false, _viewPermStr));
+
+            var userIds = await _sqlSugar
+                .Queryable<Grp_EnterExitCostDraftPermission>()
+                .Where(x => x.IsDel == 0 && x.DraftId == dto.DraftId)
+                .Select(x => x.UserId)
+                .ToArrayAsync();
+
+            var perUsers = await _enterExitCostDraftRep.PermissionViewUsersAsync();
+
+            var perUsersView = new List<dynamic>();
+
+            var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm");
+            var viewPermissionData = new List<PermissionViewUserview>();
+            if (feeBasePerm.Any())
+            {
+                foreach (var item in feeBasePerm)
+                {
+                    if (item.Users.Any())
+                    {
+                        viewPermissionData.AddRange(item.Users);
+                    }
+                }
+
+            }
+
+            foreach (var item in perUsers)
+            {
+                bool isView1 = false;
+                if (userIds.Any(x => x == item.Id)) isView1 = true;
+                else if (viewPermissionData.Any(x => x.Id ==dto.CurrUserId) && item.Id == dto.CurrUserId) isView1 = true;
+                perUsersView.Add(new { Id = item.Id, Name = item.Name, IsView = isView1 });
+            }
+
+            return Ok(JsonView(perUsersView));
+        }
+
         /// <summary>
         /// <summary>
         /// 团组模块 - 出入境费用-草稿-移动端 - 设置view权限
         /// 团组模块 - 出入境费用-草稿-移动端 - 设置view权限
         /// </summary>
         /// </summary>
@@ -10954,31 +11226,28 @@ WHERE
             (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
             (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
             if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
             if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
 
 
-            var permissions = new List<Grp_EnterExitCostDraftPermission>();
+            var permissions = new List<Grp_EnterExitCostDraftPermission>() { };
             foreach (var userId in dto.UserIds)
             foreach (var userId in dto.UserIds)
             {
             {
                 permissions.Add(new Grp_EnterExitCostDraftPermission { Permission = 1, DraftId = dto.DraftId, UserId = userId, CreateUserId = dto.CurrUserId });
                 permissions.Add(new Grp_EnterExitCostDraftPermission { Permission = 1, DraftId = dto.DraftId, UserId = userId, CreateUserId = dto.CurrUserId });
             }
             }
             if (permissions.Any())
             if (permissions.Any())
             {
             {
-                _sqlSugar.BeginTran();
-                try
+                if (!permissions.Any(x => x.UserId == dto.CurrUserId))
                 {
                 {
-                    await _sqlSugar.Deleteable<Grp_EnterExitCostDraftPermission>().Where(it => it.DraftId == dto.DraftId).ExecuteCommandAsync();
-
-                    var result = await _sqlSugar.Insertable(permissions).ExecuteCommandAsync();
-                    if (result < 1)
-                    {
-                        _sqlSugar.RollbackTran();
-                        return Ok(JsonView(false));
-                    }
+                    permissions.Add(new Grp_EnterExitCostDraftPermission { Permission = 1, DraftId = dto.DraftId, UserId = dto.CurrUserId, CreateUserId = dto.CurrUserId });
                 }
                 }
-                catch (Exception ex)
-                {
 
 
+                _sqlSugar.BeginTran();
+                await _sqlSugar.Deleteable<Grp_EnterExitCostDraftPermission>().Where(it => it.DraftId == dto.DraftId).ExecuteCommandAsync();
+
+                var result = await _sqlSugar.Insertable(permissions).ExecuteCommandAsync();
+                if (result < 1)
+                {
                     _sqlSugar.RollbackTran();
                     _sqlSugar.RollbackTran();
-                    return Ok(JsonView(false, ex.Message));
+                    return Ok(JsonView(false));
                 }
                 }
+
                 _sqlSugar.CommitTran();
                 _sqlSugar.CommitTran();
                 return Ok(JsonView(true));
                 return Ok(JsonView(true));
 
 
@@ -11275,7 +11544,7 @@ WHERE
             if (id < 1) return Ok(JsonView(false, MsgTips.DiId));
             if (id < 1) return Ok(JsonView(false, MsgTips.DiId));
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
 
 
-            var info = _mapper.Map<Grp_EnterExitCost>(dto);
+            var info = _mapper.Map<Grp_EnterExitCostDraft>(dto);
 
 
             info.OutsideJJPay = dto.OutsideJJPay;
             info.OutsideJJPay = dto.OutsideJJPay;
             info.OutsideGWPay = dto.OutsideGWPay;
             info.OutsideGWPay = dto.OutsideGWPay;
@@ -11531,14 +11800,14 @@ WHERE
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostDraftMobileOpSingleStep7(PostEnterExitCostDraftMobileOpSingleStep7Dto dto)
         public async Task<IActionResult> EnterExitCostDraftMobileOpSingleStep7(PostEnterExitCostDraftMobileOpSingleStep7Dto dto)
         {
         {
-            int subId = dto.SubId, id = dto.DarftId;
+            int subId = dto.SubId, id = dto.DraftId;
             if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
             if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
             if (id < 1) return Ok(JsonView(false, MsgTips.Id));
             if (id < 1) return Ok(JsonView(false, MsgTips.Id));
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
 
 
             var subInfo = _mapper.Map<Grp_DayOtherPriceDraft>(dto);
             var subInfo = _mapper.Map<Grp_DayOtherPriceDraft>(dto);
             subInfo.Id = subId;
             subInfo.Id = subId;
-            subInfo.ParentId = dto.DarftId;
+            subInfo.ParentId = id;
             subInfo.CreateUserId = dto.CurrUserId;
             subInfo.CreateUserId = dto.CurrUserId;
 
 
             int parentId = await EnterExitCostDraftVerifyIsNull(id, dto.CurrUserId); //主表验证
             int parentId = await EnterExitCostDraftVerifyIsNull(id, dto.CurrUserId); //主表验证

+ 86 - 25
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -1034,10 +1034,9 @@ namespace OASystem.API.Controllers
 
 
             #endregion
             #endregion
 
 
-            string whereSql = "";
+            string whereSql = "" ,currUserName = "";
             #region 分页参数处理
             #region 分页参数处理
 
 
-
             //类型处理
             //类型处理
             if (dto.Type == 0) whereSql = "";
             if (dto.Type == 0) whereSql = "";
             else if (dto.Type == 1) //1 由我指派
             else if (dto.Type == 1) //1 由我指派
@@ -1066,27 +1065,78 @@ namespace OASystem.API.Controllers
 
 
             #endregion
             #endregion
 
 
-            string pageSql = string.Format(@"Select * From(
-                                                 Select ROW_NUMBER() OVER(ORDER BY ta.CreateTime Desc) AS RowNumber,
-                                                 ta.Id,ta.TaskName,ta.TaskPriority,d.DepName,di.TeamName,ta.Status,
-                                                 ta.PredictBeginTime,ta.PredictEndTime,u.CnName As CreateUserName,ta.CreateTime,
-                                                 (SELECT STUFF(
-                                                  (Select  ',' + u.CnName From Pm_TaskRelevanceUser tra
-                                                 Left Join Sys_Users u On tra.UserId = u.Id
-                                                 Where tra.Isdel = 0 And tra.TAId = ta.Id
-                                                 FOR XML PATH('')),1,1,'')) As Participant,
-                                                 (SELECT STUFF(
-                                                  (Select  ',' + u.CnName From Pm_TaskRelevanceUser tra
-                                                 Left Join Sys_Users u On tra.UserId = u.Id
-                                                 Where tra.Isdel = 0 And tra.TAId = ta.Id And tra.TaskStatus = 4
-                                                 FOR XML PATH('')),1,1,'')) As Consummator
-                                                 From Pm_TaskAllocation ta
-                                                 Left Join Sys_Department d  On ta.DepId = d.Id 
-                                                 Left Join Grp_DelegationInfo di  On ta.DiId = di.Id 
-                                                 Left Join Sys_Users u On ta.CreateUserId = u.Id
-                                                 Where ta.IsDel = 0 {0} ) As temp ", whereSql);
-
-            RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
+            var currUserInfo = await _sqlSugar.Queryable<Sys_Users>().FirstAsync(x => x.Id == dto.UserId);
+            if (currUserInfo != null) currUserName = currUserInfo.CnName;
+
+            string pageSql = string.Format(@"Select
+ ROW_NUMBER() OVER(
+        ORDER BY
+          CreateTime Desc
+      ) AS RowNumber,
+  *
+From
+(
+    Select
+      ta.Id,
+      ta.TaskName,
+      ta.TaskPriority,
+      d.DepName,
+      di.TeamName,
+      ta.Status,
+      ta.PredictBeginTime,
+      ta.PredictEndTime,
+      u.CnName As CreateUserName,
+      ta.CreateTime,
+      (
+        SELECT
+          STUFF(
+            (
+              Select
+                ',' + u.CnName
+              From
+                Pm_TaskRelevanceUser tra
+                Left Join Sys_Users u On tra.UserId = u.Id
+              Where
+                tra.Isdel = 0
+                And tra.TAId = ta.Id FOR XML PATH('')
+            ),
+            1,
+            1,
+            ''
+          )
+      ) As Participant,
+      (
+        SELECT
+          STUFF(
+            (
+              Select
+                ',' + u.CnName
+              From
+                Pm_TaskRelevanceUser tra
+                Left Join Sys_Users u On tra.UserId = u.Id
+              Where
+                tra.Isdel = 0
+                And tra.TAId = ta.Id
+                And tra.TaskStatus = 4 FOR XML PATH('')
+            ),
+            1,
+            1,
+            ''
+          )
+      ) As Consummator
+    From
+      Pm_TaskAllocation ta
+      Left Join Sys_Department d On ta.DepId = d.Id
+      Left Join Grp_DelegationInfo di On ta.DiId = di.Id
+      Left Join Sys_Users u On ta.CreateUserId = u.Id
+    Where
+      ta.IsDel = 0 {0}
+  ) As temp
+WHERE
+  [CreateUserName] like '%{1}%'
+  OR [Participant] like '%{2}%' ", whereSql, currUserName, currUserName);
+
+            RefAsync<int> total = 0;
             var _view = await _taskAllocationRep._sqlSugar.SqlQueryable<TaskListView>(pageSql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);//ToPageAsync
             var _view = await _taskAllocationRep._sqlSugar.SqlQueryable<TaskListView>(pageSql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);//ToPageAsync
 
 
             List<int> taskIds = new List<int>();
             List<int> taskIds = new List<int>();
@@ -1101,7 +1151,18 @@ namespace OASystem.API.Controllers
             var taskerData = _taskAllocationRep._sqlSugar.SqlQueryable<TaskerDetailsView>(taskerSql).Where(it => taskIds.Contains(it.TAId)).ToList();
             var taskerData = _taskAllocationRep._sqlSugar.SqlQueryable<TaskerDetailsView>(taskerSql).Where(it => taskIds.Contains(it.TAId)).ToList();
             foreach (var item in _view)
             foreach (var item in _view)
             {
             {
-                item.TaskerDetails = taskerData.Where(it => it.TAId == item.Id).ToList();
+                //任务接收者显示自己任务状态
+                if (!item.CreateUserName.Equals(currUserName))
+                {
+                    var subTaskInfo = taskerData.FirstOrDefault(x => item.Id == x.TAId && x.UserId == dto.UserId);
+                    if (subTaskInfo != null) item.Status = subTaskInfo.TaskStatus;
+                }
+                else
+                {
+                    item.TaskerDetails = taskerData.Where(it => it.TAId == item.Id).ToList();
+                }
+
+
 
 
                 ////处理任务总状态 And 任务人状态
                 ////处理任务总状态 And 任务人状态
                 //var taskerStatusData = taskerData.Where(it => it.TAId == item.Id && it.TaskCreateUserId != dto.UserId && it.UserId == dto.UserId).FirstOrDefault();
                 //var taskerStatusData = taskerData.Where(it => it.TAId == item.Id && it.TaskCreateUserId != dto.UserId && it.UserId == dto.UserId).FirstOrDefault();
@@ -1381,7 +1442,6 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(false, _view.Msg));
             return Ok(JsonView(false, _view.Msg));
         }
         }
 
 
-
         /// <summary>
         /// <summary>
         /// 任务分配
         /// 任务分配
         /// 任务发布者 单人设置未完成状态
         /// 任务发布者 单人设置未完成状态
@@ -1732,6 +1792,7 @@ namespace OASystem.API.Controllers
 
 
             countyDatas.Insert(0, new { id = 0, name = "其他物资(公司内部物资)"});
             countyDatas.Insert(0, new { id = 0, name = "其他物资(公司内部物资)"});
             countyDatas.Insert(0, new { id = -1, name = "拜访客户所使用的物资" });
             countyDatas.Insert(0, new { id = -1, name = "拜访客户所使用的物资" });
+            countyDatas.Insert(0, new { id = -2, name = "库存调整" });
             var total = countyDatas.Count;
             var total = countyDatas.Count;
             countyDatas = countyDatas.WhereIF(!string.IsNullOrEmpty(dto.Search), x => x.name.Contains(dto.Search)).ToList();
             countyDatas = countyDatas.WhereIF(!string.IsNullOrEmpty(dto.Search), x => x.name.Contains(dto.Search)).ToList();
             countyDatas = countyDatas
             countyDatas = countyDatas

+ 7 - 16
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -530,24 +530,15 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> OperationSetData(OperationSetDataDto dto)
         public async Task<IActionResult> OperationSetData(OperationSetDataDto dto)
         {
         {
-            try
-            {
-                if (dto.Name == "")
-                {
-                    return Ok(JsonView(false, "请检查板块名称是否填写!"));
-                }
-                Result result = await _setDataRepository.OperationSetData(dto);
-                if (result.Code != 0)
-                {
-                    return Ok(JsonView(false, result.Msg));
-                }
-                return Ok(JsonView(true, result.Msg));
-            }
-            catch (Exception ex)
+            if (string.IsNullOrEmpty(dto.Name)) return Ok(JsonView(false, "请检查板块名称是否填写!"));
+
+            Result result = await _setDataRepository.OperationSetData(dto);
+
+            if (result.Code != 0)
             {
             {
-                return Ok(JsonView(false, "程序错误!"));
-                throw;
+                return Ok(JsonView(false, result.Msg));
             }
             }
+            return Ok(JsonView(true, result.Msg));
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 7 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -135,6 +135,13 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<Grp_EnterExitCostDraft, EnterExitCostDraftMobileParentInfoView>();
             CreateMap<Grp_EnterExitCostDraft, EnterExitCostDraftMobileParentInfoView>();
 
 
             CreateMap<EnterExitCostDraftOpDto, Grp_EnterExitCostDraft>();
             CreateMap<EnterExitCostDraftOpDto, Grp_EnterExitCostDraft>();
+            CreateMap<PostEnterExitCostDraftMobileOpStep1Dto, Grp_EnterExitCostDraft>();
+            CreateMap<PostEnterExitCostDraftMobileOpStep2Dto, Grp_EnterExitCostDraft>();
+            CreateMap<PostEnterExitCostDraftMobileFeeOpCheckboxDto, Grp_EnterExitCostDraft>();
+            CreateMap<DayAndCostMobileInfoDto, Grp_DayAndCostDraft>();
+            CreateMap<PostEnterExitCostDraftMobileOpSingleStep3To6Dto, Grp_DayAndCostDraft>();
+            CreateMap<DayOtherPriceMobileInfoDto, Grp_DayOtherPriceDraft>();
+            CreateMap<PostEnterExitCostDraftMobileOpSingleStep7Dto, Grp_DayOtherPriceDraft>();
             CreateMap<DayAndCostDraftAddView, Grp_DayAndCostDraft>();
             CreateMap<DayAndCostDraftAddView, Grp_DayAndCostDraft>();
             CreateMap<Grp_DayAndCostDraft, DayAndCostDraftAddView>();
             CreateMap<Grp_DayAndCostDraft, DayAndCostDraftAddView>();
 
 

+ 6 - 1
OASystem/OASystem.Domain/Dtos/Groups/EnterExitCostDto.cs

@@ -888,6 +888,11 @@ namespace OASystem.Domain.Dtos.Groups
 
 
     }
     }
 
 
+    public class EnterExitCostDraftMobileViewPermissionUsersDto : PostEnterExitCostDraftMobileUpdateDtoBase
+    { 
+    
+    }
+
     public class EnterExitCostDraftMobileSetViewPermissiionDto
     public class EnterExitCostDraftMobileSetViewPermissiionDto
     {
     {
         public int DraftId { get; set; }
         public int DraftId { get; set; }
@@ -1195,7 +1200,7 @@ namespace OASystem.Domain.Dtos.Groups
     public class DayOtherPriceDraftMobileInfoDto
     public class DayOtherPriceDraftMobileInfoDto
     {
     {
         public int SubId { get; set; }
         public int SubId { get; set; }
-        public int DarftId { get; set; }
+        public int DraftId { get; set; }
 
 
         public int SetDataId { get; set; }
         public int SetDataId { get; set; }
 
 

+ 18 - 0
OASystem/OASystem.Domain/Dtos/Groups/GroupOrderPreInfoDtos.cs

@@ -0,0 +1,18 @@
+using OASystem.Domain.ViewModels.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Groups
+{
+    public class GroupOrderPreInfoDtos
+    {
+    }
+
+    public class GroupOrderPreInfoOpDto: GrpOrderPreInfoView
+    {
+        public int CurrUserId { get; set; }
+    }
+}

+ 9 - 4
OASystem/OASystem.Domain/Entities/Groups/Grp_OrderInfo.cs

@@ -7,11 +7,17 @@ using System.Threading.Tasks;
 namespace OASystem.Domain.Entities.Groups
 namespace OASystem.Domain.Entities.Groups
 {
 {
     /// <summary>
     /// <summary>
-    /// 团组下单信息
+    /// 团组下单信息
     /// </summary>
     /// </summary>
-    [SqlSugar.SugarTable("Grp_OrderInfo","团组下单信息")]
-    public class Grp_OrderInfo:EntityBase
+    [SqlSugar.SugarTable("Grp_OrderPreInfo", "团组下单信息")]
+    public class Grp_OrderPreInfo:EntityBase
     {
     {
+        /// <summary>
+        /// 名称
+        /// </summary>
+        [SugarColumn(ColumnName = "Name", ColumnDescription = "Name", IsNullable = true, DefaultValue = "NULL", ColumnDataType = "varchar(120)")]
+        public string Name { get; set; }
+
         /// <summary>
         /// <summary>
         /// 正式团组Id
         /// 正式团组Id
         /// </summary>
         /// </summary>
@@ -24,6 +30,5 @@ namespace OASystem.Domain.Entities.Groups
         [SugarColumn(ColumnName = "Type", ColumnDescription = "团组下单类型", IsNullable = true, DefaultValue = "NULL", ColumnDataType = "int")]
         [SugarColumn(ColumnName = "Type", ColumnDescription = "团组下单类型", IsNullable = true, DefaultValue = "NULL", ColumnDataType = "int")]
         public int Type { get; set; }
         public int Type { get; set; }
 
 
-        public string Unit { get; set; }
     }
     }
 }
 }

+ 34 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_OrderPreItem.cs

@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    /// <summary>
+    /// 团组下单前信息Item
+    /// </summary>
+    [SugarTable("Grp_OrderPreItem", "团组下单前信息Item")]
+    public class Grp_OrderPreItem : EntityBase
+    {
+        /// <summary>
+        /// 团组下单前信息Id
+        /// </summary>
+        [SugarColumn(ColumnName = "ParentId", ColumnDescription = "团组下单前信息Id", IsNullable = true, DefaultValue = "NULL", ColumnDataType = "int")]
+        public int ParentId { get; set; }
+
+        /// <summary>
+        /// 字段Id
+        /// </summary>
+        [SugarColumn(ColumnName = "FormTempId", ColumnDescription = "Temp字段Id", IsNullable = true, DefaultValue = "NULL", ColumnDataType = "int")]
+        public int FormTempId { get; set; }
+
+        /// <summary>
+        /// 存储值
+        /// </summary>
+        [SugarColumn(ColumnName = "Value", ColumnDescription = "存储值", IsNullable = true, DefaultValue = "NULL", ColumnDataType = "varchar(300)")]
+        public string Value { get; set; }
+
+    }
+}

+ 2 - 2
OASystem/OASystem.Domain/Entities/PersonnelModule/Pm_TaskJobRelevancy.cs

@@ -10,7 +10,7 @@ namespace OASystem.Domain.Entities.PersonnelModule
     /// 任务分配
     /// 任务分配
     /// 任务权限(userId 控制userId)
     /// 任务权限(userId 控制userId)
     /// </summary>
     /// </summary>
-    public class Pm_TaskJobRelevancy:EntityBase
+    public class Pm_TaskJobRelevancy : EntityBase
     {
     {
         /// <summary>
         /// <summary>
         /// 主职位为四川泛美公司的总经理/副总经理/经理/主管 UserId
         /// 主职位为四川泛美公司的总经理/副总经理/经理/主管 UserId
@@ -18,7 +18,7 @@ namespace OASystem.Domain.Entities.PersonnelModule
         public int PrimaryUserId { get; set; }
         public int PrimaryUserId { get; set; }
 
 
         /// <summary>
         /// <summary>
-        /// 其他公司或四川泛美公司的职位 UserId
+        /// 其他公司或四川泛美公司的职位 UserId
         /// </summary>
         /// </summary>
         public int SubUserId { get; set; }
         public int SubUserId { get; set; }
 
 

+ 52 - 0
OASystem/OASystem.Domain/Entities/System/Sys_FormTemp.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.System
+{
+    /// <summary>
+    /// 表单模板
+    /// </summary>
+    [SugarTable("Sys_FormTemp", "表单模板")]
+    public class Sys_FormTemp : EntityBase
+    {
+        /// <summary>
+        /// 模板Id(datasetType Id)
+        /// </summary>
+        [SugarColumn(ColumnName = "TempId", ColumnDescription = "模板Id", IsNullable = true, ColumnDataType = "int")]
+        public int TempId { get; set; }
+
+        /// <summary>
+        /// 字段NameId(datasetType Id)
+        /// </summary>
+        [SugarColumn(ColumnName = "FieldNameId", ColumnDescription = "字段Id(datasetType Id)", IsNullable = true, ColumnDataType = "int")]
+        public int FieldNameId { get; set; }
+
+        /// <summary>
+        /// 字段TypeId(datasetType Id)
+        /// </summary>
+        [SugarColumn(ColumnName = "FieldTypeId", ColumnDescription = "字段TypeId(datasetType Id)", IsNullable = true, ColumnDataType = "int")]
+        public int FieldTypeId { get; set; }
+
+        /// <summary>
+        /// 是否必填
+        /// </summary>
+        [SugarColumn(ColumnName = "IsRequired", ColumnDescription = "是否必填", IsNullable = true, ColumnDataType = "bit")]
+        public bool IsRequired { get; set; } = false;
+
+        /// <summary>
+        /// 是否备注
+        /// </summary>
+        [SugarColumn(ColumnName = "IsRemark", ColumnDescription = "是否备注", IsNullable = true, ColumnDataType = "bit")]
+        public bool IsRemark { get; set; } = false;
+
+        /// <summary>
+        /// 排序
+        /// </summary>
+        [SugarColumn(ColumnName = "Index", ColumnDescription = "排序", IsNullable = true, ColumnDataType = "int")]
+        public int Index { get; set; }
+
+    }
+}

+ 0 - 4
OASystem/OASystem.Domain/ViewModels/Groups/EnterExitCostDraftView.cs

@@ -12,10 +12,6 @@ namespace OASystem.Domain.ViewModels.Groups
     public class EnterExitCostDraftView:Grp_EnterExitCostDraft
     public class EnterExitCostDraftView:Grp_EnterExitCostDraft
     {
     {
     }
     }
-
-    
-
-
     public class PermissionViewUserview
     public class PermissionViewUserview
     {
     {
         public int Id { get; set; }
         public int Id { get; set; }

+ 103 - 0
OASystem/OASystem.Domain/ViewModels/Groups/OrderPreInfoView.cs

@@ -0,0 +1,103 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using OASystem.Domain.Entities.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Groups
+{
+    public class OrderPreInfoView : Grp_OrderPreInfo
+    {
+    }
+
+    public class GrpOrderPreInfoView
+    {
+        public int Id { get; set; }
+
+        //public int TempId { get; set; }
+
+        public string Name { get; set; }
+
+        public int GroupId { get; set; }
+
+        public GrpOrderPreItemView[] Items { get; set; }
+
+    }
+
+    public class GrpOrderPreItemView
+    {
+        public int Id { get; set; }
+        public int ParentId { get; set; }
+
+        public int FieldTempId { get; set; }
+
+        public string FieldName { get; set; }
+        public string FieldTypeName { get; set; }
+        public string OriginVal { get; set; }
+
+        private object _newValue;
+        public object NewValue
+        {
+            get
+            {
+                if (string.IsNullOrEmpty(OriginVal)) return _newValue;
+
+                if (FieldTypeName.Equals("文本"))
+                {
+                    return OriginVal;
+                }
+                else if (FieldTypeName.Equals("搜索框"))
+                {
+
+                    var val = Array.Empty<string>();
+
+                    string regexPattern = @"^\s*\{[\s\S]*\}\s*$";
+                    bool isValid = Regex.IsMatch(OriginVal, regexPattern);
+
+                    try
+                    {
+                        if (isValid)
+                        {
+                            val = JsonConvert.DeserializeObject<string[]>(OriginVal);
+                        }
+
+                        return val;
+
+                    }
+                    catch (Exception)
+                    {
+
+                        return val;
+                    }
+
+
+                }
+                else if (FieldTypeName.Equals("下拉选择框") || FieldTypeName.Equals("复选框") || FieldTypeName.Equals("数字"))
+                {
+                    int.TryParse(OriginVal, out int val);
+                    OriginVal = val.ToString();
+                    return val;
+                }
+                else if (FieldTypeName.Equals("单选按钮"))
+                {
+                    var val = "无";
+                    if (OriginVal.ToUpper().Equals("TRUE") || OriginVal.Equals("有")) val = "有";
+                    OriginVal = val;
+                    return val;
+                }
+                return null;
+            }
+            set { _newValue = value; }
+        }
+
+        public string Remark { get; set; }
+        public bool IsRequired { get; set; }
+        public bool IsRemark { get; set; }
+        public int Index { get; set; }
+    }
+}

+ 1 - 0
OASystem/OASystem.Infrastructure/OASystem.Infrastructure.csproj

@@ -15,6 +15,7 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
+    <PackageReference Include="Aspose.Cells" Version="23.4.0" />
     <PackageReference Include="Autofac" Version="6.4.0" />
     <PackageReference Include="Autofac" Version="6.4.0" />
     <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
     <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
     <PackageReference Include="AutoMapper" Version="12.0.0" />
     <PackageReference Include="AutoMapper" Version="12.0.0" />

+ 237 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/GroupOrderPreInfoRepository.cs

@@ -0,0 +1,237 @@
+using AutoMapper;
+using EyeSoft.Collections.Generic;
+using OASystem.Domain;
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.ViewModels.Groups;
+using Org.BouncyCastle.Ocsp;
+using Org.BouncyCastle.Utilities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    /// <summary>
+    /// 团组下单前信息
+    /// </summary>
+    public class GroupOrderPreInfoRepository : BaseRepository<Grp_OrderPreInfo, OrderPreInfoView>
+    {
+        private readonly IMapper _mapper;
+        private readonly DelegationInfoRepository _groupInfoRep;
+        public GroupOrderPreInfoRepository(SqlSugarClient sqlSugar, IMapper mapper, DelegationInfoRepository groupInfoRep) : base(sqlSugar)
+        {
+            _mapper = mapper;
+            _groupInfoRep = groupInfoRep;
+        }
+
+        /// <summary>
+        /// 获取模板信息
+        /// </summary>
+        /// <param name="tempId"></param>
+        /// <returns></returns>
+        public async Task<JsonView> DataInit()
+        {
+            var jw = new JsonView() { Code = StatusCodes.Status200OK, Msg = "操作成功!" };
+
+            var groupNames = await _groupInfoRep.GetGroupNameList(new Domain.Dtos.Groups.GroupNameDto() { PortType = 1 });
+            var tempDatas = await _sqlSugar.Queryable<Sys_SetData>().Where(x => x.IsDel == 0 && x.STid == 109).Select(x => new { x.Id, x.Name }).ToListAsync();
+            var names = await _sqlSugar.Queryable<Grp_OrderPreInfo>().Where(x => x.IsDel == 0).OrderByDescending(x => x.Id).Select(x => new { x.Id, x.Name }).ToListAsync();
+            jw.Data = new
+            {
+                groupNames = groupNames,
+                tempDatas = tempDatas,
+                names = names
+            };
+            return jw;
+        }
+
+
+        /// <summary>
+        /// 获取模板信息
+        /// </summary>
+        /// <param name="tempId"></param>
+        /// <returns></returns>
+        public async Task<GrpOrderPreItemView[]> TempInfoById(int tempId = 1404)
+        {
+            var tempInfos = await _sqlSugar.Queryable<Sys_FormTemp, Sys_SetData, Sys_SetData>((ft, sd1, sd2) =>
+                new JoinQueryInfos(
+                    JoinType.Left, ft.FieldNameId == sd1.Id,
+                    JoinType.Left, ft.FieldTypeId == sd2.Id
+                    ))
+                .Where((ft, sd1, sd2) => ft.IsDel == 0 && ft.TempId == tempId)
+                .OrderBy((ft, sd1, sd2) => ft.Index)
+                .Select((ft, sd1, sd2) => new GrpOrderPreItemView()
+                {
+                    FieldTempId = ft.Id,
+                    FieldName = sd1.Name,
+                    OriginVal = "-",
+                   // FieldTypeName = !string.IsNullOrEmpty(ft.Remark) ? sd2.Name +"-"+ ft.Remark : sd2.Name,
+                    FieldTypeName =  sd2.Name,
+                    IsRequired = ft.IsRequired,
+                    IsRemark = ft.IsRemark,
+                    Index = ft.Index
+                })
+                .ToArrayAsync();
+            return tempInfos;
+        }
+
+        /// <summary>
+        /// 获取团组下单前信息
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<JsonView> InfoAsync(int id, int tempId = 1404)
+        {
+            var jw = new JsonView() { Code = StatusCodes.Status200OK, Msg = "操作成功!" };
+            var view = new GrpOrderPreInfoView();
+            var info = await _sqlSugar.Queryable<Grp_OrderPreInfo>().FirstAsync(x => x.IsDel == 0 && x.Id == id);
+
+            var temps = await TempInfoById(tempId);
+            if (info == null)
+            {
+                //view.TempId = tempId;
+                view.Items = temps;
+                jw.Data = view;
+                return jw;
+            }
+            view.Id = id;
+            view.Name = info.Name;
+            view.GroupId = info.GroupId;
+            var items = await _sqlSugar.Queryable<Sys_FormTemp, Grp_OrderPreItem, Sys_SetData, Sys_SetData>((ft, opi, sd1, sd2) =>
+                new JoinQueryInfos(
+                    JoinType.Inner, ft.Id == opi.FormTempId,
+                    JoinType.Left, ft.FieldNameId == sd1.Id,
+                    JoinType.Left, ft.FieldTypeId == sd2.Id
+                    ))
+                .Where((ft, opi, sd1, sd2) => ft.IsDel == 0 && opi.IsDel == 0 && opi.ParentId == id && ft.TempId == tempId)
+                .OrderBy((ft, opi, sd1, sd2) => ft.Index)
+                .Select((ft, opi, sd1, sd2) => new GrpOrderPreItemView()
+                {
+                    Id = opi.Id,
+                    ParentId = opi.ParentId,
+                    FieldTempId = ft.Id,
+                    FieldName = sd1.Name,
+                    //FieldTypeName = !string.IsNullOrEmpty(ft.Remark) ? sd2.Name + "-" + ft.Remark : sd2.Name,
+                    FieldTypeName = sd2.Name,
+                    OriginVal = opi.Value,
+                    IsRequired = ft.IsRequired,
+                    IsRemark = ft.IsRemark,
+                    Index = ft.Index
+                })
+                .ToArrayAsync();
+
+            if (!items.Any()) view.Items = temps;
+            else
+            {
+                if (items.Length != temps.Length)
+                {
+                    foreach (var item in temps)
+                    {
+                        if (items.FirstOrDefault(x => x.FieldName.Equals(item.FieldName)) == null)
+                        {
+                            var arr = new GrpOrderPreItemView[] { item };
+                            view.Items.AddRange(arr);
+                        }
+                    }
+                }
+                else view.Items = items;
+
+                view.Items = view.Items.Length > 0 ? view.Items.OrderBy(x => x.Index).ToArray() : view.Items;
+            }
+
+            jw.Data = view;
+            return jw;
+        }
+
+        /// <summary>
+        /// 获取团组下单前信息 op
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<JsonView> OpAsync(GroupOrderPreInfoOpDto dto)
+        {
+            var jw = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "操作成功!" };
+            int currUserId = dto.CurrUserId;
+            if (currUserId < 1)
+            {
+                jw.Msg = MsgTips.UserId;
+                return jw;
+            }
+            if (string.IsNullOrEmpty(dto.Name))
+            {
+                jw.Msg = $"名称不能为空!";
+                return jw;
+            }
+
+            var info = new Grp_OrderPreInfo()
+            {
+                Id = dto.Id,
+                Name = dto.Name,
+                GroupId = dto.GroupId,
+                CreateUserId = currUserId
+            };
+            var items = new List<Grp_OrderPreItem>();
+            foreach (var item in dto.Items)
+            {
+                items.Add(new Grp_OrderPreItem()
+                {
+                    Id = item.Id,
+                    ParentId = item.ParentId,
+                    FormTempId = item.FieldTempId,
+                    Value = item.NewValue == null ? string.Empty: item.NewValue.ToString() ,
+                    CreateUserId = currUserId,
+                    Remark = item.Remark
+                });
+            }
+
+            var addItems = items.Where(x => x.Id <= 0).ToArray();
+            var updItems = items.Where(x => x.Id > 0).ToArray();
+
+            _sqlSugar.BeginTran();
+            if (dto.Id > 0) //修改
+            {
+                var infoUpd = await _sqlSugar.Updateable(info).UpdateColumns(x => new { x.Name, x.GroupId }).ExecuteCommandAsync();
+                if (infoUpd < 1)
+                {
+                    _sqlSugar.RollbackTran();
+                    jw.Msg = $"修改失败!";
+                    return jw;
+                }
+
+                if (addItems.Any()) await _sqlSugar.Insertable(addItems).ExecuteCommandAsync();
+
+                if (updItems.Any()) await _sqlSugar.Updateable(updItems).UpdateColumns(x => new { x.Value, x.Remark }).ExecuteCommandAsync();
+            }
+            else if (dto.Id <= 0) //新增
+            {
+                var isNul = await _sqlSugar.Queryable<Grp_OrderPreInfo>().FirstAsync(x => x.IsDel == 0 && x.Name.Equals(dto.Name));
+                if (isNul != null)
+                {
+                    _sqlSugar.RollbackTran();
+                    jw.Msg = $"名称重复!";
+                    return jw;
+                }
+
+                var addId = await _sqlSugar.Insertable(info).ExecuteReturnIdentityAsync();
+                if (addId < 1)
+                {
+                    _sqlSugar.RollbackTran();
+                    jw.Msg = $"新增失败!";
+                    return jw;
+                }
+
+                foreach (var item in items) item.ParentId = addId;
+
+                if (items.Any()) await _sqlSugar.Insertable(items).ExecuteCommandAsync();
+            }
+
+            _sqlSugar.CommitTran();
+            jw.Msg = $"操作成功!";
+            jw.Code = StatusCodes.Status200OK;
+            return jw;
+        }
+    }
+}

+ 2 - 2
OASystem/OASystem.Infrastructure/Repositories/Groups/VisaFeeInfoRepository.cs

@@ -289,7 +289,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
             var visaData1 = visaData.GroupBy(it => it.CountryVisaFeeId);
             var visaData1 = visaData.GroupBy(it => it.CountryVisaFeeId);
             
             
             //费用报价系数
             //费用报价系数
-            decimal priceCoeff = 1.20M; 
+            decimal priceCoeff = 1.00M; 
             foreach (var kvp in visaData1)
             foreach (var kvp in visaData1)
             {
             {
                 var countryData = visaCountryDatas.Find(it => it.Id == kvp.Key);
                 var countryData = visaCountryDatas.Find(it => it.Id == kvp.Key);
@@ -365,7 +365,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
             decimal feeTotal = 0.00M;
             decimal feeTotal = 0.00M;
 
 
             //费用报价系数
             //费用报价系数
-            decimal priceCoeff = 1.20M;
+            decimal priceCoeff = 1.00M;
             foreach (var kvp in visaCountryDatas)
             foreach (var kvp in visaCountryDatas)
             {
             {
                 var countryName = kvp?.VisaCountry ?? "";
                 var countryName = kvp?.VisaCountry ?? "";

+ 2 - 0
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/GoodsRepository.cs

@@ -29,6 +29,7 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
         private JsonView _jv;
         private JsonView _jv;
         private string _url;
         private string _url;
         private string _excelPath;
         private string _excelPath;
+        
         public GoodsRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
         public GoodsRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
         {
         {
             _mapper = mapper;
             _mapper = mapper;
@@ -77,6 +78,7 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
 
 
             groupData.Insert(0, new { id = 0, groupName = "其他物资(公司内部物资)" });
             groupData.Insert(0, new { id = 0, groupName = "其他物资(公司内部物资)" });
             groupData.Insert(0, new { id = -1, groupName = "拜访客户所使用的物资" });
             groupData.Insert(0, new { id = -1, groupName = "拜访客户所使用的物资" });
+            groupData.Insert(0, new { id = -2, groupName = "库存调整" });
 
 
             var userData = await _sqlSugar.Queryable<Sys_Users>()
             var userData = await _sqlSugar.Queryable<Sys_Users>()
                 .Where(x => x.IsDel == 0)
                 .Where(x => x.IsDel == 0)

+ 32 - 19
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/TaskAllocationRepository.cs

@@ -71,36 +71,51 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
                 //任务名称
                 //任务名称
                 List<string?> _TaskNameInfos = new List<string?>();
                 List<string?> _TaskNameInfos = new List<string?>();
                 _TaskNameInfos = _sqlSugar.Queryable<Pm_TaskAllocation, Pm_TaskRelevanceUser>((ta, tau) => new JoinQueryInfos(JoinType.Left, ta.Id == tau.TAId))
                 _TaskNameInfos = _sqlSugar.Queryable<Pm_TaskAllocation, Pm_TaskRelevanceUser>((ta, tau) => new JoinQueryInfos(JoinType.Left, ta.Id == tau.TAId))
-                                          .Where((ta, tau) => ta.IsDel == 0 && tau.IsDel == 0)
-                                          .Where((ta, tau) => ta.CreateUserId == userId || tau.UserId == userId)
-                                          .Select(ta => ta.TaskName).ToList()
-                                          .Distinct().ToList();
+                    .Where((ta, tau) => ta.IsDel == 0 && tau.IsDel == 0)
+                    .Where((ta, tau) => ta.CreateUserId == userId || tau.UserId == userId)
+                    .Select(ta => ta.TaskName).ToList()
+                    .Distinct().ToList();
 
 
                 //团组名称
                 //团组名称
                 List<ValueInfo> _GroupNameInfos = new List<ValueInfo>();
                 List<ValueInfo> _GroupNameInfos = new List<ValueInfo>();
-                _GroupNameInfos = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0)
-                                                                           .OrderByDescending(it => it.CreateTime)
-                                                                           .Select(it => new ValueInfo { Id = it.Id, Name = it.TeamName })
-                                                                           .ToList();
+                _GroupNameInfos = _sqlSugar.Queryable<Grp_DelegationInfo>()
+                    .Where(it => it.IsDel == 0)
+                    .OrderByDescending(it => it.VisitStartDate)
+                    .Select(it => new ValueInfo { Id = it.Id, Name = it.TeamName })
+                    .ToList();
                 _GroupNameInfos.Insert(0, new ValueInfo() { Id = -1, Name = "未选择" });
                 _GroupNameInfos.Insert(0, new ValueInfo() { Id = -1, Name = "未选择" });
                 //部门名称
                 //部门名称
                 ValueInfo _DepartmentNameInfos = new ValueInfo();
                 ValueInfo _DepartmentNameInfos = new ValueInfo();
                 _DepartmentNameInfos = _sqlSugar.Queryable<Sys_Users, Sys_Department>((u, d) => new JoinQueryInfos(JoinType.Left, u.DepId == d.Id))
                 _DepartmentNameInfos = _sqlSugar.Queryable<Sys_Users, Sys_Department>((u, d) => new JoinQueryInfos(JoinType.Left, u.DepId == d.Id))
-                                                .Select((u, d) => new ValueInfo() { Id = d.Id, Name = d.DepName })
-                                                .First();
+                    .Where((u, d) => u.Id == userId)
+                    .Select((u, d) => new ValueInfo() { Id = d.Id, Name = d.DepName })
+                    .First();
 
 
                 //执行任务人员信息 1 公司总经理/副总 可分配 所有人的任务 2 公司 部门经理/主管 可分配 部门下的人员的任务
                 //执行任务人员信息 1 公司总经理/副总 可分配 所有人的任务 2 公司 部门经理/主管 可分配 部门下的人员的任务
                 List<ExecuteTaskUserInfo> _ExecuteTaskUserInfos = new List<ExecuteTaskUserInfo>();
                 List<ExecuteTaskUserInfo> _ExecuteTaskUserInfos = new List<ExecuteTaskUserInfo>();
                 TaskOperationAudit _TaskOpertionAudit = new TaskOperationAudit();
                 TaskOperationAudit _TaskOpertionAudit = new TaskOperationAudit();
-                List<Pm_TaskJobRelevancy> taskAudits = new List<Pm_TaskJobRelevancy>();
+                var taskAudits = new List<Pm_TaskJobRelevancy>();
                 taskAudits = _sqlSugar.Queryable<Pm_TaskJobRelevancy>().Where(it => it.IsDel == 0 && it.PrimaryUserId == userId).ToList();
                 taskAudits = _sqlSugar.Queryable<Pm_TaskJobRelevancy>().Where(it => it.IsDel == 0 && it.PrimaryUserId == userId).ToList();
+                var taslPerm = taskAudits.Any();
+                if (!taskAudits.Any())
+                {
+                    var taskUserIds = _sqlSugar.Queryable<Pm_TaskJobRelevancy>().Where(it => it.IsDel == 0 && it.SubUserId == userId).Select(x => x.PrimaryUserId).ToList();
+                    if (taskUserIds.Any())
+                    {
+                        taskAudits = _sqlSugar.Queryable<Pm_TaskJobRelevancy>().Where(it => it.IsDel == 0 && taskUserIds.Contains(it.PrimaryUserId)).ToList();
+                    }
+                }
 
 
-                if (taskAudits.Count > 0)
+                if (taskAudits.Any())
                 {
                 {
                     //任务权限
                     //任务权限
-                    _TaskOpertionAudit.TaskAddAudit = 1;
-                    _TaskOpertionAudit.TaskDelAudit = 1;
-                    _TaskOpertionAudit.TasStopAudit = 1;
+                    if (taslPerm)
+                    {
+
+                        _TaskOpertionAudit.TaskAddAudit = 1;
+                        _TaskOpertionAudit.TaskDelAudit = 1;
+                        _TaskOpertionAudit.TasStopAudit = 1;
+                    }
 
 
                     List<int> userIds = taskAudits.Select(it => it.SubUserId).ToList();
                     List<int> userIds = taskAudits.Select(it => it.SubUserId).ToList();
                     string userSql = string.Format(@"Select u.Id,u.CnName As Name,c.CompanyName,
                     string userSql = string.Format(@"Select u.Id,u.CnName As Name,c.CompanyName,
@@ -395,9 +410,6 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
                     _result.Msg = string.Format("请传入有效的Id参数!");
                     _result.Msg = string.Format("请传入有效的Id参数!");
                     return _result;
                     return _result;
                 }
                 }
-
-
-
             }
             }
             else
             else
             {
             {
@@ -551,7 +563,8 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
                 _result.Msg = string.Format("该任务不在!");
                 _result.Msg = string.Format("该任务不在!");
                 return _result;
                 return _result;
             }
             }
-            if (selectData.TaskStatus != TaskerEnum.UnderWay)
+            
+            if (selectData.TaskStatus >= TaskerEnum.UnderWay)
             {
             {
                 _result.Msg = string.Format("该任务已提交待审核状态,不可重复提交!");
                 _result.Msg = string.Format("该任务已提交待审核状态,不可重复提交!");
                 return _result;
                 return _result;

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/Resource/TicketBlackCodeRepository.cs

@@ -208,7 +208,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     {
                     {
                         jjcCurrentRate = _TicketBlackCode.ECPrice,
                         jjcCurrentRate = _TicketBlackCode.ECPrice,
                         gwcCurrentRate = _TicketBlackCode.BCPrice,
                         gwcCurrentRate = _TicketBlackCode.BCPrice,
-                        Remark = $"经济舱价:{_TicketBlackCode.ECPrice.ToString("#0.00")} 元/人 公务舱:{_TicketBlackCode.BCPrice.ToString("#0.00")} 元/人"
+                        Remark = $"经济舱价:{_TicketBlackCode.ECPrice.ToString("#0.00")} 元/人 公务舱全价:{_TicketBlackCode.BCPrice.ToString("#0.00")} 元/人"
                     }
                     }
                 };
                 };
             }
             }

+ 27 - 38
OASystem/OASystem.Infrastructure/Repositories/System/SetDataRepository.cs

@@ -229,53 +229,42 @@ namespace OASystem.Infrastructure.Repositories.System
         public async Task<Result> OperationSetData(OperationSetDataDto dto)
         public async Task<Result> OperationSetData(OperationSetDataDto dto)
         {
         {
             Result result = new Result() { Code = -2, Msg = "未知错误" };
             Result result = new Result() { Code = -2, Msg = "未知错误" };
-            try
+            if (dto.Status == 1)//添加
             {
             {
-                if (dto.Status == 1)//添加
+                string selectSql = string.Format(@"select * from Sys_SetData where STID={0} AND Name='{1}' and IsDel='{2}'"
+                                                   , dto.STid, dto.Name, 0);
+                var SetData = await _sqlSugar.SqlQueryable<Sys_SetData>(selectSql).FirstAsync();//查询是否存在
+                if (SetData != null)
                 {
                 {
-                    string selectSql = string.Format(@"select * from Sys_SetData where Name='{0}' and IsDel='{1}'"
-                                                       , dto.Name, 0);
-                    var SetData = await _sqlSugar.SqlQueryable<Sys_SetData>(selectSql).FirstAsync();//查询是否存在
-                    if (SetData != null)
-                    {
-                        return result = new Result() { Code = -1, Msg = "该信息已存在,请勿重复添加!" };
-
-                    }
-                    else//不存在,可添加
-                    {
-                        Sys_SetData _SetData = _mapper.Map<Sys_SetData>(dto);
-                        int id = await AddAsyncReturnId(_SetData);
-                        if (id == 0)
-                        {
-                            return result = new Result() { Code = -1, Msg = "添加失败!" };
+                    return result = new Result() { Code = -1, Msg = "该信息已存在,请勿重复添加!" };
 
 
-                        }
-                        result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
-                    }
-                }
-                else if (dto.Status == 2)//修改
-                {
-                    bool res = await UpdateAsync(a => a.Id == dto.Id, a => new Sys_SetData
-                    {
-                        Name = dto.Name,
-                        STid = dto.STid,
-                        Remark = dto.Remark,
-                    });
-                    if (!res)
-                    {
-                        return result = new Result() { Code = -1, Msg = "修改失败!" };
-                    }
-                    result = new Result() { Code = 0, Msg = "修改成功!" };
                 }
                 }
-                else
+
+                Sys_SetData _SetData = _mapper.Map<Sys_SetData>(dto);
+                int id = await AddAsyncReturnId(_SetData);
+                if (id == 0)
                 {
                 {
-                    return result = new Result() { Code = -1, Msg = "请传入Status参数,1添加 2修改!" };
+                    return result = new Result() { Code = -1, Msg = "添加失败!" };
+
                 }
                 }
+                result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
+
             }
             }
-            catch (Exception ex)
+            else if (dto.Status == 2)//修改
             {
             {
-                return result = new Result() { Code = -2, Msg = "程序错误!" };
+                bool res = await UpdateAsync(a => a.Id == dto.Id, a => new Sys_SetData
+                {
+                    Name = dto.Name,
+                    STid = dto.STid,
+                    Remark = dto.Remark,
+                });
+                if (!res)
+                {
+                    return result = new Result() { Code = -1, Msg = "修改失败!" };
+                }
+                result = new Result() { Code = 0, Msg = "修改成功!" };
             }
             }
+            else return result = new Result() { Code = -1, Msg = "请传入Status参数,1添加 2修改!" };
             return result;
             return result;
         }
         }