ソースを参照

财务模块 收款账单

leiy 1 年間 前
コミット
670cb77059

+ 79 - 2
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -624,6 +624,31 @@ namespace OASystem.API.Controllers
 
         #region 对外收款账单
 
+        /// <summary>
+        /// 对外收款账单 
+        /// 数据源
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostGroupReceivablesDataSource()
+        {
+            try
+            {
+                Result ffrData = await _ForForeignReceivablesRep.PostDataSource();
+                if (ffrData.Code != 0)
+                {
+                    return Ok(JsonView(false, ffrData.Msg));
+                }
+                return Ok(JsonView(true, ffrData.Msg, ffrData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, ex.Message));
+                throw;
+            }
+        }
 
         /// <summary>
         /// 对外收款账单 
@@ -633,11 +658,63 @@ namespace OASystem.API.Controllers
         /// <returns></returns>
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> PostGroupReceivablesInfoByDiId(ForForeignReceivablesInfoDto dto)
+        public async Task<IActionResult> PostGroupReceivablesInfoByDiId(ForForeignReceivablesNewDto dto)
         {
             try
             {
-                Result ffrData = await _ForForeignReceivablesRep.GetGroupReceivablesInfoByDiId(dto);
+                Result ffrData = await _ForForeignReceivablesRep.PostGroupReceivablesInfoByDiId(dto);
+                if (ffrData.Code != 0)
+                {
+                    return Ok(JsonView(false, ffrData.Msg));
+                }
+                return Ok(JsonView(true, ffrData.Msg, ffrData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, ex.Message));
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 对外收款账单 
+        /// 添加 And 更新
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostReceivablesSave(ForeignReceivablesSaveDto dto)
+        {
+            try
+            {
+                Result ffrData = await _ForForeignReceivablesRep.PostReceivablesSave(dto);
+                if (ffrData.Code != 0)
+                {
+                    return Ok(JsonView(false, ffrData.Msg));
+                }
+                return Ok(JsonView(true, ffrData.Msg, ffrData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, ex.Message));
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 已收账单 
+        /// 删除
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostReceivablesDel(ForeignReceivablesDelDto dto)
+        {
+            try
+            {
+                Result ffrData = await _ForForeignReceivablesRep.PostReceivablesDel(dto);
                 if (ffrData.Code != 0)
                 {
                     return Ok(JsonView(false, ffrData.Msg));

+ 121 - 0
OASystem/OASystem.Domain/Dtos/Financial/ForForeignReceivablesNewDto.cs

@@ -0,0 +1,121 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Financial
+{
+    /// <summary>
+    /// 财务模块
+    /// 对外收款
+    /// </summary>
+    public class ForForeignReceivablesNewDto : PortDtoBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int DiId { get; set; }
+    }
+
+    /// <summary>
+    /// 财务模块
+    /// 收款账单
+    /// Add or Update Info
+    /// </summary>
+    public class ForeignReceivablesSaveDto : PortDtoBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 财务模块
+        /// Add or Update Info
+        /// </summary>
+        public List<ForeignReceivablesInfoNew>? foreignReceivablesInfos { get; set; }
+    }
+
+    /// <summary>
+    /// 财务模块
+    /// Add or Update Info
+    /// </summary>
+    public class ForeignReceivablesInfoNew
+    {
+        /// <summary>
+        /// 主键编号
+        /// id=0 时添加
+        /// 其他值时 修改
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string? PriceName { get; set; }
+
+        /// <summary>
+        /// 费用
+        /// </summary>
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        public int Count { get; set; }
+
+        /// <summary>
+        /// 单位
+        /// </summary>
+        public string? Unit { get; set; }
+
+        /// <summary>
+        /// 单项总和
+        /// </summary>
+        public decimal ItemSumPrice { get; set; }
+
+        /// <summary>
+        /// 汇率
+        /// </summary>
+        public decimal Rate { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        public int Currency { get; set; }
+
+        /// <summary>
+        /// 添加方式   
+        /// 0 - 账单页面添加   1 - 预算成本页面添加
+        /// </summary>
+        public int AddingWay { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string? Remark { get; set; }
+    }
+
+
+    /// <summary>
+    /// 财务模块
+    /// 收款账单
+    /// Del
+    /// </summary>
+    public class ForeignReceivablesDelDto : PortDtoBase
+    {
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int UserId { get; set; }
+
+
+        public int Id { get; set; }
+
+    }
+}

+ 110 - 0
OASystem/OASystem.Domain/ViewModels/Financial/Fin_ForeignReceivablesView.cs

@@ -128,4 +128,114 @@ namespace OASystem.Domain.ViewModels.Financial
         /// </summary>
         public List<ProceedsReceivedView>? _ProceedsReceivedDatas { get; set; }
     }
+
+
+    #region 不关联已收账单
+
+    /// <summary>
+    /// 团组已收款项Info View
+    /// </summary>
+    public class ProceedsReceivedNewView
+    {
+        /// <summary>
+        /// 主键ID
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int Diid { get; set; }
+
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string? PriceName { get; set; }
+
+        /// <summary>
+        /// 费用
+        /// </summary>
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        public int Count { get; set; }
+
+        /// <summary>
+        /// 单位
+        /// </summary>
+        public string? Unit { get; set; }
+
+        /// <summary>
+        /// 单项总和
+        /// </summary>
+        public decimal ItemSumPrice { get; set; }
+
+        /// <summary>
+        /// 付款方
+        /// </summary>
+        public string? To { get; set; }
+
+        /// <summary>
+        /// 付款方电话
+        /// </summary>
+        public string? ToTel { get; set; }
+
+        /// <summary>
+        /// 付款日期
+        /// </summary>
+        public string? PayDate { get; set; }
+
+        /// <summary>
+        /// 付款注意事项
+        /// </summary>
+        public string? Attention { get; set; }
+
+        /// <summary>
+        /// 汇率
+        /// </summary>
+        public decimal Rate { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        public int Currency { get; set; }
+
+        /// <summary>
+        /// 添加方式   
+        /// 0 - 账单页面添加   1 - 预算成本页面添加
+        /// </summary>
+        public int AddingWay { get; set; }
+
+        /// <summary>
+        /// 添加方式描述
+        /// </summary>
+        public string? AddingModeName
+        {
+            get
+            {
+
+                string str = "";
+                if (AddingWay == 0) str = "账单模块";
+                else if (AddingWay == 1) str = "成本预算模块";
+
+                return str;
+            }
+        }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        public DateTime? CreateTime { get; set; }
+    }
+
+
+
+    #endregion
 }

+ 137 - 1
OASystem/OASystem.Infrastructure/Repositories/Financial/ForeignReceivablesRepository.cs

@@ -109,7 +109,6 @@ namespace OASystem.Infrastructure.Repositories.Financial
 
         }
 
-
         /// <summary>
         /// 应收款项 删除
         /// </summary>
@@ -269,7 +268,144 @@ namespace OASystem.Infrastructure.Repositories.Financial
 
         #endregion
 
+        #region 未关联已收款项
+
+        /// <summary>
+        /// 收款账单 数据源
+        /// </summary>
+        /// <returns></returns>
+        public async Task<Result> PostDataSource()
+        {
+            Result result = new() { Code = -2 };
+
+            var groupNameData = await _delegationRep.GetGroupNameList(new GroupNameDto());
+            var currencyData = await _setDataRep.GetSetDataBySTId(_setDataRep, 66); //币种
+            var remittanceMethodData = await _setDataRep.GetSetDataBySTId(_setDataRep, 14); //汇款方式
+
+            result.Code = 0;
+            result.Msg = "成功!";
+            result.Data = new
+            {
+                GroupNameData = groupNameData.Data,
+                CurrencyData = currencyData.Data,
+                RemittanceMethodData = remittanceMethodData.Data
+            };
+
+            return result;
+        }
+
+        /// <summary>
+        /// 根据diid查询团组应收款项
+        /// </summary>
+        /// <param name="diid"></param>
+        /// <returns></returns>
+        public async Task<Result> PostGroupReceivablesInfoByDiId(ForForeignReceivablesNewDto dto)
+        {
+            Result result = new() { Code = -2 };
+
+            var groupInfoData = await _delegationRep.GetGroupInfo(new GroupInfoDto() { Id = dto.DiId });
+
+            //应收款项
+            string groupReceivedSql = string.Format(@"Select * From Fin_ForeignReceivables Where IsDel=0 And Diid={0}", dto.DiId);
+            var groupReceivedList = await _sqlSugar.SqlQueryable<ProceedsReceivedNewView>(groupReceivedSql).ToListAsync();
+
+            result.Code = 0;
+            result.Msg = "查询成功!";
+            result.Data = new
+            {
+                GroupInfo = groupInfoData.Data,
+                GroupCollectionStatementData = groupReceivedList
+            };
 
+            return result;
+
+        }
+
+        /// <summary>
+        /// 财务模块
+        /// 收款账单 Add And Update
+        /// </summary>
+        /// <param name="diid"></param>
+        /// <returns></returns>
+        public async Task<Result> PostReceivablesSave(ForeignReceivablesSaveDto dto)
+        {
+            Result result = new() { Code = -2 };
+
+            if (dto.foreignReceivablesInfos.Count <= 0)
+            {
+                result.Msg = "收款账单没有信息,不能进行,添加或修改操作!!!";
+                return result;
+            }
+
+            int addCount = 0, updateCount = 0;
+            if (dto.PortType == 1)
+            {
+                List<Fin_ForeignReceivables> _ForeignReceivables = new List<Fin_ForeignReceivables>();
+                foreach (var item in dto.foreignReceivablesInfos)
+                {
+                    _ForeignReceivables.Add(new Fin_ForeignReceivables()
+                    {
+                        Diid = dto.DiId,
+                        Id = item.Id,
+                        PriceName = item.PriceName,
+                        Price = item.Price,
+                        Count = item.Count,
+                        Unit = item.Unit,
+                        ItemSumPrice = item.ItemSumPrice,
+                        Rate = item.Rate,
+                        Currency = item.Currency,
+                        AddingWay = item.AddingWay,
+                        CreateUserId = dto.UserId,
+                        CreateTime = DateTime.Now,
+                        Remark = item.Remark
+                    });
+                }
+                if (_ForeignReceivables.Count > 0)
+                {
+                    var x = _sqlSugar.Storageable(_ForeignReceivables).ToStorage();
+                    addCount = x.AsInsertable.ExecuteCommand();        //不存在插入
+                    updateCount = x.AsUpdateable.ExecuteCommand();    //存在更新
+                }
+                result.Code = 0;
+                result.Msg = string.Format(@"操作成功!添加:{0}条;更新:{1};", addCount, updateCount);
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 财务模块
+        /// 收款账单 
+        /// Del
+        /// </summary>
+        /// <param name="diid"></param>
+        /// <returns></returns>
+        public async Task<Result> PostReceivablesDel(ForeignReceivablesDelDto dto)
+        {
+            Result result = new() { Code = -2 };
+           var delStatus = await _sqlSugar.Updateable<Fin_ForeignReceivables>()
+                                     .SetColumns(a => new Fin_ForeignReceivables
+                                     {
+                                         IsDel = 1,
+                                         DeleteUserId = dto.UserId,
+                                         DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                     })
+                                     .Where(a => a.Id == dto.Id)
+                                     .ExecuteCommandAsync();
+
+            if (delStatus > 0)
+            {
+                result.Msg = "操作成功!";
+                result.Code = 0;
+            }
+            else
+            {
+                result.Msg = "操作成功!";
+            }
+            return result;
+        }
+
+        #endregion
 
     }
 }