LEIYI 5 ヶ月 前
コミット
f9ca09c9bc

+ 5 - 5
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -1825,11 +1825,11 @@ namespace OASystem.API.Controllers
                     sum_refund = list_other.Sum(s => s.PayMoney * s.DayRate);
 
                     //4.超支
-                    string sql_extra = string.Format(@" Select c.* From Fin_GroupExtraCost f 
-                    Inner join Grp_CreditCardPayment c On f.Id = c.CId 
-                    Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId = {0} ", diId);
-                    List<Grp_CreditCardPayment> list_extra = _sqlSugar.SqlQueryable<Grp_CreditCardPayment>(sql_extra).ToList();
-                    sum_extra = list_extra.Sum(s => s.PayMoney * s.DayRate);
+                    //string sql_extra = string.Format(@" Select c.* From Fin_GroupExtraCost f 
+                    //Inner join Grp_CreditCardPayment c On f.Id = c.CId 
+                    //Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId = {0} ", diId);
+                    //List<Grp_CreditCardPayment> list_extra = _sqlSugar.SqlQueryable<Grp_CreditCardPayment>(sql_extra).ToList();
+                    //sum_extra = list_extra.Sum(s => s.PayMoney * s.DayRate);
 
                     item_rst.frPrice = sum_fr.ToString("#0.00");
                     item_rst.extraPrice = sum_extra.ToString("#0.00");

+ 157 - 15
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -3788,7 +3788,6 @@ FROM
             {
                 return Ok(JsonView(false, "程序错误!"));
             }
-
         }
         /// <summary>
         /// 删除指定文件
@@ -3811,7 +3810,10 @@ FROM
                     filePath = fileDir + "/团组增减款项相关文件/" + dto.fileName;
                     // 删除该文件
                     System.IO.File.Delete(filePath);
-                    id = await _sqlSugar.Updateable<Grp_DecreasePayments>().Where(a => a.Id == dto.Id).SetColumns(a => new Grp_DecreasePayments { FilePath = "" }).ExecuteCommandAsync();
+                    id = await _sqlSugar.Updateable<Grp_DecreasePayments>()
+                        .Where(a => a.Id == dto.Id)
+                        .SetColumns(a => new Grp_DecreasePayments { FilePath = "" })
+                        .ExecuteCommandAsync();
 
                 }
                 else if (TypeName == "B")
@@ -3819,7 +3821,10 @@ FROM
                     filePath = fileDir + "/商邀相关文件/" + dto.fileName;
                     // 删除该文件
                     System.IO.File.Delete(filePath);
-                    id = await _sqlSugar.Updateable<Grp_InvitationOfficialActivities>().Where(a => a.Id == dto.Id).SetColumns(a => new Grp_InvitationOfficialActivities { Attachment = "" }).ExecuteCommandAsync();
+                    id = await _sqlSugar.Updateable<Grp_InvitationOfficialActivities>()
+                        .Where(a => a.Id == dto.Id)
+                        .SetColumns(a => new Grp_InvitationOfficialActivities { Attachment = "" })
+                        .ExecuteCommandAsync();
                 }
                 if (id != 0)
                 {
@@ -3835,8 +3840,71 @@ FROM
                 return Ok(JsonView(false, "程序错误!"));
                 throw;
             }
+        }
 
+        /// <summary>
+        /// 文件上传多个文件  可以带参数
+        /// </summary>
+        /// <param name="file"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> UploadProjects(IFormFile[] files)
+        {
+            try
+            {
+                var TypeName = Request.Headers["TypeName"].ToString();
+                if (string.IsNullOrEmpty(TypeName)) return Ok(JsonView(false, "请选择选组对应模块!"));
+                if (files.Length < 1) return Ok(JsonView(false, "请选择文件!"));
+
+                var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
+
+                var filePahts = new List<string>();
+                foreach (var file in files)
+                {
+                    //文件名称
+                    string projectFileName = file.FileName;
+
+                    //上传的文件的路径
+                    string filePath = $"{fileDir}/{projectFileName}";
+                    if (TypeName == "A")//A代表团组增减款项
+                    {
+
+                        if (!Directory.Exists(fileDir))
+                        {
+                            Directory.CreateDirectory(fileDir);
+                        }
+
+                        //上传的文件的路径
+                        filePath = fileDir + $@"\团组增减款项相关文件\{projectFileName}";
+                    }
+                    else if (TypeName == "B")//B代表商邀相关文件
+                    {
+                        if (!Directory.Exists(fileDir))
+                        {
+                            Directory.CreateDirectory(fileDir);
+                        }
+
+                        //上传的文件的路径
+                        filePath = fileDir + $@"\商邀相关文件\{projectFileName}";
+
+                    }
+                    using (FileStream fs = System.IO.File.Create(filePath))
+                    {
+                        file.CopyTo(fs);
+                        fs.Flush();
+                    }
+                    filePahts.Add(projectFileName);
+                }
+
+                return Ok(JsonView(true, "上传成功!", filePahts));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+            }
         }
+
         #endregion
 
         #region 商邀费用录入
@@ -15262,7 +15330,7 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
 
         /// <summary>
         /// 团组接待意见调查 - 信息管理
-        /// 信息列表
+        /// 列表
         /// </summary>
         /// <param name="groupId"></param>
         /// <returns></returns>
@@ -15272,22 +15340,96 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
         {
             if (groupId < 1) Ok(JsonView(false,"请传入有效的diId"));
 
-            var data = await _opinionaireRep.Query(x => x.IsDel == 0 && x.DiId == groupId)
-                .LeftJoin<Sys_Users>((x,u) => x.CreateUserId == u.Id)
-                .Select((x, u) => new
-                {
-                    x.Id,
-                    x.TourGuideName,
-                    x.CityName,
-                    CreateUserName = u.CnName,
-                    x.CreateTime
-                })
-                .OrderByDescending(x => x.Id)
+            var data = await _opinionaireRep.Query(x => x.DiId == groupId)
+                 //.LeftJoin<Sys_Users>((x,u) => x.CreateUserId == u.Id)
+                 //.Select((x, u) => new
+                 //{
+                 //    x.Id,
+                 //    x.TourGuideName,
+                 //    x.CityName,
+                 //    CreateUserName = u.CnName,
+                 //    x.CreateTime
+                 //})
+                 .Select(x => new
+                 {
+                     x.Id,
+                     x.TourGuideName,
+                     x.CityName,
+                     CreateUserName = SqlFunc.Subqueryable<Sys_Users>().Where(x1 => x.CreateUserId == x1.Id).Select(x1 => x1.CnName),
+                     x.CreateTime
+                 })
+                .OrderBy(x => x.Id)
                 .ToListAsync();
             return Ok(JsonView(data));
         }
 
 
+        /// <summary>
+        /// 团组接待意见调查 - 信息管理
+        /// 保存
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> OpinionaireManageSave(OpinionaireManageSaveDto dto)
+        {
+            var currUserInfo = JwtHelper.SerializeJwt(HttpContext.Request.Headers.Authorization);
+            if (currUserInfo == null) return Ok(JsonView(false, "请传入token!"));
+
+            if (dto.DiId < 1) Ok(JsonView(false, "请传入有效的diId"));
+
+            if (dto.Items.Length < 1) Ok(JsonView(false, "请传入需要保存的信息"));
+
+            var addData = _mapper.Map<List<Grp_Opinionaire>>(dto.Items.Where(x => x.Id == 0).ToList());
+            var updData = _mapper.Map<List<Grp_Opinionaire>>(dto.Items.Where(x => x.Id > 0).ToList());
+
+            _opinionaireRep.BeginTran();
+            if (addData != null && addData.Count > 0)
+            {
+                foreach (var item in addData)
+                {
+                    item.CreateUserId = currUserInfo.UserId;
+                    item.DiId = dto.DiId;
+                }
+
+                var add = await _opinionaireRep._sqlSugar.Insertable(addData).ExecuteCommandAsync();
+            }
+
+            if (updData != null && updData.Count > 0)
+            {
+                var upd = await _opinionaireRep._sqlSugar
+                    .Updateable(updData)
+                    .UpdateColumns(x => new { x.CityName, x.TourGuideName })
+                    .WhereColumns(x =>new{ x.Id})
+                    .ExecuteCommandAsync();
+            }
+            _opinionaireRep.CommitTran();
+            return Ok(JsonView("操作成功!"));
+        }
+
+        /// <summary>
+        /// 团组接待意见调查 - 信息管理
+        /// 删除
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpDelete("{id}")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> OpinionaireManageDel(int id)
+        {
+            var currUserInfo = JwtHelper.SerializeJwt(HttpContext.Request.Headers.Authorization);
+            if (currUserInfo == null) return Ok(JsonView(false, "请传入token!"));
+
+            if (id < 1) Ok(JsonView(false, "请传入有效的id"));
+
+            var del = await _opinionaireRep.SoftDeleteAsync(x => x.Id == id, currUserInfo.UserId);
+
+            if (!del) return Ok(JsonView("操作失败!"));
+
+            return Ok(JsonView("操作成功!"));
+        }
+
         #endregion
 
         //        /// <summary>

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

@@ -108,6 +108,7 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<OpInvitationOfficialActivitiesDto, Grp_InvitationOfficialActivities>();
             CreateMap<OpInvitationOfficialActivitiesDto,Res_InvitationOfficialActivityData>();
             CreateMap<Grp_InvitationOfficialActivities, InvitationOfficialActivitiesByIdView>();
+            CreateMap<Grp_InvitationOfficialActivities, Grp_InvitationOfficialActivitiesView>();
             #endregion
 
             #region 团组英文资料
@@ -171,6 +172,10 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<VisaCommissionCreateView, Grp_VisaCommission>();
             #endregion
 
+
+            #region  团组接待意见调查
+            CreateMap<OpinionaireManageInfo, Grp_Opinionaire>();
+            #endregion
             #endregion
 
             #region Resource

+ 1 - 1
OASystem/OASystem.Domain/Dtos/Groups/InvitationOfficialActivitiesListDto.cs

@@ -133,7 +133,7 @@ namespace OASystem.Domain.Dtos.Groups
         /// <summary>
         /// 附件
         /// </summary>
-        public string Attachment { get; set; }
+        public string[] Attachment { get; set; }
 
         /// <summary>
         /// 邀请费用

+ 30 - 0
OASystem/OASystem.Domain/Dtos/Groups/OpinionaireDto.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Groups
+{
+    /// <summary>
+    /// dto
+    /// </summary>
+    public class OpinionaireDto
+    {
+    }
+
+    public class OpinionaireManageSaveDto
+    {
+        public int DiId { get; set; }
+
+        public OpinionaireManageInfo[] Items { get; set; }
+
+    }
+
+    public class OpinionaireManageInfo
+    {
+        public int Id { get; set; }
+        public string TourGuideName { get; set; }
+        public string CityName { get; set; }
+    }
+}

+ 60 - 1
OASystem/OASystem.Domain/ViewModels/Groups/InvitationOfficialActivitiesByIdView.cs

@@ -1,4 +1,7 @@
-using System;
+using EyeSoft.Collections.Generic;
+using Newtonsoft.Json;
+using OASystem.Domain.Entities.Groups;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -80,6 +83,36 @@ namespace OASystem.Domain.ViewModels.Groups
 
     }
 
+
+    public class Grp_InvitationOfficialActivitiesView : Grp_InvitationOfficialActivities
+    {
+        /// <summary>
+        /// 附件
+        /// </summary>
+        public string[] Attachments
+        {
+            get
+            {
+                var array = new string[] { };
+
+                if (!string.IsNullOrEmpty(Attachment))
+                {
+                    try
+                    {
+                        array = JsonConvert.DeserializeObject<string[]>(Attachment);
+                    }
+                    catch (Exception)
+                    {
+
+                        array.AddRange(new string[] { Attachment });
+                    }
+                }
+                return array;
+            }
+        }
+
+    }
+
     public class InvitationOfficialActivitiesByIdView
     {
         //------------------ 消费方式及时间 --------------------------
@@ -176,6 +209,32 @@ namespace OASystem.Domain.ViewModels.Groups
         /// </summary>
         public string Attachment { get; set; }
 
+        /// <summary>
+        /// 附件
+        /// </summary>
+        public string[] Attachments
+        {
+            get
+            {
+                var array = new string[] { };
+
+                if (!string.IsNullOrEmpty(Attachment))
+                {
+                    try
+                    {
+                        array = JsonConvert.DeserializeObject<string[]>(Attachment);
+                    }
+                    catch (Exception)
+                    {
+
+                        array.AddRange(new string[] { Attachment });
+                    }
+                }
+                return array;
+            }
+        }
+
+
         /// <summary>
         /// 邀请费用
         /// </summary>

+ 15 - 4
OASystem/OASystem.Infrastructure/Repositories/Groups/InvitationOfficialActivitiesRepository.cs

@@ -1,5 +1,6 @@
 using AutoMapper;
 using MathNet.Numerics.Statistics.Mcmc;
+using Newtonsoft.Json;
 using NPOI.SS.Formula.Functions;
 using OASystem.Domain;
 using OASystem.Domain.Dtos.Groups;
@@ -35,7 +36,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
             Result result = new Result() { Code = -2, Msg = "程序错误" };
             try
             {
-                Grp_InvitationOfficialActivities grp_Invitation = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().First(a => a.Id == dto.Id && a.IsDel == 0);
+                var grp_Invitation = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().First(a => a.Id == dto.Id && a.IsDel == 0);
                 Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == dto.Id && a.IsDel == 0 && a.CTable==81);
                 Res_InvitationOfficialActivityData res_InvitationOfficialActivityData = new Res_InvitationOfficialActivityData();
                 if (grp_Invitation!=null)
@@ -44,9 +45,12 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                                                   .First(a =>a.Country==grp_Invitation.InviterArea && a.UnitName==grp_Invitation.Inviter && a.IsDel == 0);
                     if (dto.PortType == 1)
                     {
+
+                        var grp_Invitation1 = _mapper.Map<Grp_InvitationOfficialActivitiesView>(grp_Invitation);
+
                         var data = new
                         {
-                            _Invitation = grp_Invitation,
+                            _Invitation = grp_Invitation1,
                             _InvitationData = res_InvitationOfficialActivityData,
                             _CreditCard = grp_CreditCard,
                         };
@@ -54,7 +58,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
                     else
                     {
-                        InvitationOfficialActivitiesByIdView invitation = _mapper.Map<InvitationOfficialActivitiesByIdView>(grp_Invitation);
+                        var invitation = _mapper.Map<InvitationOfficialActivitiesByIdView>(grp_Invitation);
                         res_InvitationOfficialActivityData ??= new Res_InvitationOfficialActivityData();
                         invitation.ConsumptionPatterns = grp_CreditCard.ConsumptionPatterns;
                         invitation.ConsumptionDate = grp_CreditCard.ConsumptionDate;
@@ -283,8 +287,15 @@ Order By i.id  Desc ", sqlWhere);
             Result result = new Result() { Code = -2, Msg = "程序错误!" };
             BeginTran();
 
+            string filePath = string.Empty;
+            if (dto.Attachment.Length > 0)
+            {
+                filePath = JsonConvert.SerializeObject(dto.Attachment);
+            }
+
             int id = 0;
             Grp_InvitationOfficialActivities grp_Invitation = _mapper.Map<Grp_InvitationOfficialActivities>(dto);
+            grp_Invitation.Attachment = filePath;
             if (dto.Status == 1)//添加
             {
                 //string selectSql = string.Format(@"select * from Grp_InvitationOfficialActivities where InviterArea='{0}' and Inviter='{1}' and DiId={2} and IsDel={3}"
@@ -420,7 +431,7 @@ Order By i.id  Desc ", sqlWhere);
                     InviterArea = dto.InviterArea,
                     Inviter = dto.Inviter,
                     InviteTime = thisTime,
-                    Attachment = dto.Attachment,
+                    Attachment = filePath,
                     InviteCost = dto.InviteCost,
                     InviteCurrency = dto.InviteCurrency,
                     SendCost = dto.SendCost,