yuanrf 1 рік тому
батько
коміт
928e5327cd

+ 5 - 2
OASystem/EntitySync/Program.cs

@@ -78,7 +78,7 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Grp_ScheduleInfo),
     //typeof(Grp_ScheduleDetailInfo),
     //typeof(Grp_SchedulePersonInfo)
-    typeof(Sys_Message),
+    //typeof(Sys_Message),
     //typeof(Sys_MessageReadAuth)
     //typeof(Crm_DeleClient)
     //typeof(Crm_NewClientData)
@@ -95,7 +95,7 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Fin_DailyFeePaymentContent),// 财务 - 日付申请详细类
     //typeof(Grp_GroupsTaskAssignment),
     //typeof(Grp_AirTicketReservations),
-    //typeof(Grp_GroupCostParameter),
+    typeof(Grp_GroupCostParameter),
     //typeof(Grp_TeamRate),              // 团组汇率
     //typeof(Fin_ForeignReceivables),    // 对外收款账单
     //typeof(Fin_ProceedsReceived),      // 已收款项
@@ -110,5 +110,8 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Pm_WageSheet)       //人事模块 工资表单
     //typeof(Grp_VisaProgressCustomer),
     //typeof(Grp_VisaProgressCustomerPicture)
+    //typeof(Grp_CheckBoxs)  //成本选中
+    //typeof(Grp_GroupCost) //成本数据信息
+    //typeof(Grp_CostTypeHotelNumber)//分段房间数量
 });
 Console.WriteLine("数据库结构同步完成!");

+ 91 - 1
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -28,6 +28,8 @@ using AlibabaCloud.OpenApiClient.Models;
 using System;
 using NPOI.HPSF;
 using SqlSugar;
+using System.Collections;
+using Org.BouncyCastle.Ocsp;
 
 namespace OASystem.API.Controllers
 {
@@ -49,6 +51,12 @@ namespace OASystem.API.Controllers
         private readonly DelegationVisaRepository _delegationVisaRep;
         private readonly MessageRepository _message;
         private readonly SqlSugarClient _sqlSugar;
+        #region 成本相关
+        private readonly CheckBoxsRepository _checkBoxs;
+        private readonly GroupCostRepository _GroupCostRepository;
+        private readonly CostTypeHotelNumberRepository _CostTypeHotelNumberRepository;
+        private readonly GroupCostParameterRepository _GroupCostParameterRepository;
+        #endregion
         private string url;
         private string path;
 
@@ -57,7 +65,8 @@ namespace OASystem.API.Controllers
         public GroupsController(IMapper mapper, SqlSugarClient sqlSugar, GrpScheduleRepository grpScheduleRep, DelegationInfoRepository groupRepository,
             TaskAssignmentRepository taskAssignmentRep, AirTicketResRepository airTicketResRep, DecreasePaymentsRepository decreasePaymentsRep,
             InvitationOfficialActivitiesRepository InvitationOfficialActivitiesRep, DelegationEnDataRepository delegationEnDataRep, EnterExitCostRepository enterExitCostRep
-            , DelegationVisaRepository delegationVisaRep, MessageRepository message)
+            , DelegationVisaRepository delegationVisaRep, MessageRepository message, CheckBoxsRepository checkBoxs, GroupCostRepository GroupCostRepository, CostTypeHotelNumberRepository CostTypeHotelNumberRepository,
+            GroupCostParameterRepository GroupCostParameterRepository)
         {
             _mapper = mapper;
             _grpScheduleRep = grpScheduleRep;
@@ -77,6 +86,10 @@ namespace OASystem.API.Controllers
             _enterExitCostRep = enterExitCostRep;
             _delegationVisaRep = delegationVisaRep;
             _message = message;
+            _checkBoxs = checkBoxs;
+            _GroupCostRepository = GroupCostRepository;
+            _CostTypeHotelNumberRepository = CostTypeHotelNumberRepository;
+            _GroupCostParameterRepository = GroupCostParameterRepository;
         }
 
         
@@ -2812,6 +2825,83 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false, ex.Message));
             }
         }
+        #endregion
+
+        #region 团组成本
+
+        /// <summary>
+        /// 团组成本数据初始化
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> GroupCostInit(GroupCostInItDto dto)
+        {
+            var groupList = _sqlSugar.SqlQueryable<DelegationInfoAndIsTrueView>($@"
+                Select  a.Id,TeamName GroupName,b.isTrue From  Grp_DelegationInfo  a left join  (select top 100 percent Diid, CASE 
+                WHEN COUNT(*) >= 0 THEN 'True' 
+                ELSE 'False' END as isTrue  from Grp_GroupCost where Isdel = 0 and date != '' group by Diid) b on a.Id = b.Diid
+                 Where TeamName != '' And IsDel = 0  Order By a.Id Desc
+            ").ToList(); //团组列表
+            int diid = dto.Diid == - 1 ? groupList.First().Id : dto.Diid;
+            var groupInfo = await _groupRepository.PostShareGroupInfo(new ShareGroupInfoDto { PortType =  1 , Id = diid }); //团组信息
+            var groupChecks =   _checkBoxs.GetCheckBoxsByDiid(diid);  //团组选中信息  可枚举
+            var groupCost = _GroupCostRepository.GetAllByDiid(diid);  //团组列表信息  
+            var groupCostMap = _mapper.Map<List<Grp_GroupCostDto>>(groupCost);
+            var hotelNumber = _CostTypeHotelNumberRepository.GetCostTypeHotelNumberByDiid(diid); //酒店数量 可枚举
+            var GroupCostParameter = _GroupCostParameterRepository.GetGroupCostParameterListByDiid(diid); //成本系数 可枚举
+
+            //GroupCostParameter.Add(new
+            //     Grp_GroupCostParameter());
+            var GroupCostParameterMap = _mapper.Map<List<Grp_GroupCostParameterDto>>(GroupCostParameter);
+
+            return Ok(JsonView(new {
+                groupList,
+                groupInfo,
+                groupChecks,
+                groupCost = groupCostMap,
+                hotelNumber,
+                GroupCostParameter = GroupCostParameterMap,
+            }));
+        }
+
+        /// <summary>
+        /// 团组成本信息保存
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> SaveGroupCost(GroupCostSavaDto dto)
+        {
+            JsonView jw = null;
+            bool isTrue = false;
+            var Grp_groups = _mapper.Map<List<Grp_GroupCost>>(dto.GroupCosts);
+            Grp_groups.ForEach(x => { x.CreateUserId = dto.Userid; x.CreateTime = DateTime.Now;}); //.ToString("yyyy-MM-dd HH:mm:ss")
+            var Grp_CheckBoxs = _mapper.Map<List<Grp_CheckBoxs>>(dto.CheckBoxs);
+            Grp_CheckBoxs.ForEach(x => { x.CreateUserId = dto.Userid; x.CreateTime = DateTime.Now; });
+            var Grp_HotelNumber = _mapper.Map<List<Grp_CostTypeHotelNumber>>(dto.CostTypeHotelNumbers);
+            var Grp_CostParameters = _mapper.Map<List<Grp_GroupCostParameter>>(dto.GroupCostParameters);
+
+            try
+            {
+                _sqlSugar.BeginTran();
+                isTrue = await _GroupCostRepository.SaveGroupCostList(Grp_groups,dto.Diid); //列表
+                isTrue = await _checkBoxs.SaveCheckBoxs(Grp_CheckBoxs,dto.Diid); //选中项
+                isTrue = await _CostTypeHotelNumberRepository.SaveHotelNumber(Grp_HotelNumber,dto.Diid); //酒店房间数量
+                isTrue = await _GroupCostParameterRepository.SaveAsync(Grp_CostParameters, dto.Diid); //系数
+
+                _sqlSugar.CommitTran();
+                jw = JsonView(true,"保存成功!",isTrue);
+            }
+            catch (Exception)
+            {
+                _sqlSugar.RollbackTran();
+                jw = JsonView(false);
+            }
+
+            return Ok(jw);
+        }
+
 
         #endregion
     }

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

@@ -118,6 +118,14 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<NationalTravelFeeOperateDto, Grp_NationalTravelFee>();
             #endregion
 
+            #region 成本
+            CreateMap<Grp_GroupCostDto, Grp_GroupCost>();
+            CreateMap<Grp_CheckBoxsDto, Grp_CheckBoxs>();
+            CreateMap<Grp_CostTypeHotelNumberDto, Grp_CostTypeHotelNumber>();
+            CreateMap<Grp_GroupCostParameterDto, Grp_GroupCostParameter>();
+            CreateMap<Grp_GroupCost, Grp_GroupCostDto>();
+            CreateMap<Grp_GroupCostParameter, Grp_GroupCostParameterDto>();
+            #endregion
 
             #endregion
             #region Resource

+ 773 - 0
OASystem/OASystem.Domain/Dtos/Groups/GroupCostSavaDto.cs

@@ -0,0 +1,773 @@
+using OASystem.Domain.Entities;
+using OASystem.Domain.Entities.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Groups
+{
+    public class GroupCostSavaDto
+    {
+        //选中
+       public List<Grp_CheckBoxsDto> CheckBoxs { get; set; }
+
+        //列表
+       public List<Grp_GroupCostDto> GroupCosts { get; set; }
+
+        //房间数
+       public List<Grp_CostTypeHotelNumberDto> CostTypeHotelNumbers { get; set; }
+
+        //系数
+       public List<Grp_GroupCostParameterDto> GroupCostParameters { get; set; }
+
+        public int Userid { get; set; }
+
+        public int Diid {  get; set; }  
+    }
+
+    public class Grp_CheckBoxsDto
+    {
+        public int Diid { get; set; }
+        /// <summary>
+        /// 选中区域  Top, Left, Right
+        /// </summary>
+        public string CbType { get; set; }
+        /// <summary>
+        /// 选中的值
+        /// </summary>
+        public string CbValues { get; set; }
+    }
+
+    public class Grp_GroupCostDto
+    {
+        int diid;
+        /// <summary>
+        /// 团号
+        /// </summary>
+        public int Diid
+        {
+            get { return diid; }
+            set { diid = value; }
+        }
+        string day;
+        /// <summary>
+        /// 天数
+        /// </summary>
+
+        public string DAY
+        {
+            get { return day; }
+            set { day = value; }
+        }
+        string date;
+        /// <summary>
+        /// 日期
+        /// </summary>
+        public string Date
+        {
+            get { return date; }
+            set { date = value; }
+        }
+
+        string itin;
+        /// <summary>
+        /// 行程描述
+        /// </summary>
+        public string ITIN
+        {
+            get { return itin; }
+            set { itin = value; }
+        }
+        string carType;
+        /// <summary>
+        /// 车型
+        /// </summary>
+        public string CarType
+        {
+            get { return carType; }
+            set { carType = value; }
+        }
+
+        decimal carCost;
+        /// <summary>
+        /// 车费用
+        /// </summary>
+        
+        public decimal CarCost
+        {
+            get { return carCost; }
+            set { carCost = value; }
+        }
+
+        int carNumber;
+        /// <summary>
+        /// 车数量
+        /// </summary>
+        
+        public int CarNumber
+        {
+            get { return carNumber; }
+            set { carNumber = value; }
+        }
+
+        decimal carTiming;
+        /// <summary>
+        /// 用车时间
+        /// </summary>
+        
+        public decimal CarTiming
+        {
+            get { return carTiming; }
+            set { carTiming = value; }
+        }
+
+        decimal tgs;
+        /// <summary>
+        ///  导游工资
+        /// </summary>
+        
+        public decimal TGS
+        {
+            get { return tgs; }
+            set { tgs = value; }
+        }
+
+        decimal tgwh;
+        /// <summary>
+        ///  导游工作时间
+        /// </summary>
+        
+        public decimal TGWH
+        {
+            get { return tgwh; }
+            set { tgwh = value; }
+        }
+
+        decimal tgn;
+        /// <summary>
+        ///  导游数量
+        /// </summary>
+        
+        public decimal TGN
+        {
+            get { return tgn; }
+            set { tgn = value; }
+        }
+
+        /// <summary>
+        /// 导游超时费用
+        /// </summary>
+        decimal tgof;
+
+        
+        public decimal TGOF
+        {
+            get { return tgof; }
+            set { tgof = value; }
+        }
+
+        decimal tgm;
+        /// <summary>
+        /// 导游餐补
+        /// </summary>
+        
+        public decimal TGM
+        {
+            get { return tgm; }
+            set { tgm = value; }
+        }
+
+        decimal tga;
+        /// <summary>
+        /// 导游房补
+        /// </summary>
+        
+        public decimal TGA
+        {
+            get { return tga; }
+            set { tga = value; }
+        }
+
+        decimal tgtf;
+        /// <summary>
+        /// 导游交通费
+        /// </summary>
+        
+        public decimal TGTF
+        {
+            get { return tgtf; }
+            set { tgtf = value; }
+        }
+
+        decimal tgef;
+        /// <summary>
+        /// 导游景点费
+        /// </summary>
+        
+        public decimal TGEF
+        {
+            get { return tgef; }
+            set { tgef = value; }
+        }
+
+        decimal cfs;
+        /// <summary>
+        ///  司机工资
+        /// </summary>
+        
+        public decimal CFS
+        {
+            get { return cfs; }
+            set { cfs = value; }
+        }
+
+        /// <summary>
+        /// 司机餐补
+        /// </summary>
+        decimal cfm;
+        
+        public decimal CFM
+        {
+            get { return cfm; }
+            set { cfm = value; }
+        }
+
+        /// <summary>
+        /// 司机超时费用
+        /// </summary>
+        decimal cfof;
+        
+        public decimal CFOF
+        {
+            get { return cfof; }
+            set { cfof = value; }
+        }
+
+        decimal b;
+        /// <summary>
+        /// 早餐
+        /// </summary>
+        
+        public decimal B
+        {
+            get { return b; }
+            set { b = value; }
+        }
+
+        decimal l;
+        /// <summary>
+        /// 午餐
+        /// </summary>
+        
+        public decimal L
+        {
+            get { return l; }
+            set { l = value; }
+        }
+
+        decimal d;
+        /// <summary>
+        /// 晚餐
+        /// </summary>
+        
+        public decimal D
+        {
+            get { return d; }
+            set { d = value; }
+        }
+
+        decimal tbr;
+        /// <summary>
+        /// 1/2 双人间
+        /// </summary>
+        
+        public decimal TBR
+        {
+            get { return tbr; }
+            set { tbr = value; }
+        }
+        decimal sgr;
+        /// <summary>
+        /// 单间
+        /// </summary>
+        
+        public decimal SGR
+        {
+            get { return sgr; }
+            set { sgr = value; }
+        }
+        decimal jses;
+        /// <summary>
+        /// 小套房
+        /// </summary>
+        
+        public decimal JS_ES
+        {
+            get { return jses; }
+            set { jses = value; }
+        }
+
+        decimal suite;
+        /// <summary>
+        /// 套房
+        /// </summary>
+        
+        public decimal Suite
+        {
+            get { return suite; }
+            set { suite = value; }
+        }
+
+        string accon;
+        /// <summary>
+        /// 酒店名称
+        /// </summary>
+        public string ACCON
+        {
+            get { return accon; }
+            set { accon = value; }
+        }
+
+        decimal tv;
+        /// <summary>
+        /// 公务活动费用
+        /// </summary>
+        
+        public decimal TV
+        {
+            get { return tv; }
+            set { tv = value; }
+        }
+
+        decimal il;
+        /// <summary>
+        /// 邀请函相关费用
+        /// </summary>
+        
+        public decimal iL
+        {
+            get { return il; }
+            set { il = value; }
+        }
+
+        decimal iF;
+        /// <summary>
+        /// 公务翻译费用
+        /// </summary>
+        
+        public decimal IF
+        {
+            get { return iF; }
+            set { iF = value; }
+        }
+
+        decimal ef;
+        /// <summary>
+        /// 景点门票
+        /// </summary>
+        
+        public decimal EF
+        {
+            get { return ef; }
+            set { ef = value; }
+        }
+
+        decimal brf;
+        /// <summary>
+        /// 饮料零食水果
+        /// </summary>
+        
+        public decimal B_R_F
+        {
+            get { return brf; }
+            set { brf = value; }
+        }
+
+        decimal te;
+        /// <summary>
+        /// 出行物资
+        /// </summary>
+        
+        public decimal TE
+        {
+            get { return te; }
+            set { te = value; }
+        }
+
+        decimal tgtips;
+        /// <summary>
+        /// 导游小费
+        /// </summary>
+        
+        public decimal TGTips
+        {
+            get { return tgtips; }
+            set { tgtips = value; }
+        }
+        decimal drvtips;
+        /// <summary>
+        /// 司机小费
+        /// </summary>
+        
+        public decimal DRVTips
+        {
+            get { return drvtips; }
+            set { drvtips = value; }
+        }
+
+        decimal pc;
+        /// <summary>
+        /// 零用金
+        /// </summary>
+        
+        public decimal PC
+        {
+            get { return pc; }
+            set { pc = value; }
+        }
+
+        decimal tlf;
+        /// <summary>
+        /// 领队费
+        /// </summary>
+        
+        public decimal TLF
+        {
+            get { return tlf; }
+            set { tlf = value; }
+        }
+
+        decimal ect;
+        /// <summary>
+        /// 会务费
+        /// </summary>
+        
+        public decimal ECT
+        {
+            get { return ect; }
+            set { ect = value; }
+        }
+    }
+
+    public class Grp_CostTypeHotelNumberDto
+    {
+        /// <summary>
+        /// 数据id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 单人间
+        /// </summary>
+        public int SGR { get; set; }
+
+        /// <summary>
+        /// 双人间
+        /// </summary>
+        public int TBR { get; set; }
+
+        /// <summary>
+        /// 小套房
+        /// </summary>
+        public int JSES { get; set; }
+
+        /// <summary>
+        /// 大套房
+        /// </summary>
+        public int SUITE { get; set; }
+
+        /// <summary>
+        /// 类型 Default A B ....
+        /// </summary>
+        public string Type { get; set; }
+
+        /// <summary>
+        /// 团组id
+        /// </summary>
+        public int Diid { get; set; }
+    }
+
+    public class Grp_GroupCostParameterDto
+    {
+        /// <summary>
+        /// 数据id
+        /// </summary>
+        public int Id { get; set; }
+
+
+        /// <summary>
+        /// 团组ID
+        /// </summary>
+        
+        public int DiId { get; set; }
+        /// <summary>
+        /// 币种
+        /// </summary>
+       
+        public string Currency { get; set; }
+        /// <summary>
+        /// 汇率
+        /// </summary>
+       
+        public decimal Rate { get; set; }
+        /// <summary>
+        /// 税率
+        /// </summary>
+       
+        public decimal Tax { get; set; }
+        /// <summary>
+        /// 房费预算
+        /// </summary>
+       
+        public decimal FFYS { get; set; }
+        /// <summary>
+        /// 酒店系数
+        /// </summary>
+       
+        public decimal HotelXS { get; set; }
+        /// <summary>
+        /// 经济舱成本
+        /// </summary>
+       
+        public decimal JJCCB { get; set; }
+        /// <summary>
+        /// 经济舱系数
+        /// </summary>
+       
+        public decimal JJCXS { get; set; }
+        /// <summary>
+        /// 经济舱人数
+        /// </summary>
+        
+        public int JJCRS { get; set; }
+        /// <summary>
+        /// 公务舱成本
+        /// </summary>
+       
+        public decimal GWCCB { get; set; }
+        /// <summary>
+        /// 公务舱系数
+        /// </summary>
+       
+        public decimal GWCXS { get; set; }
+        /// <summary>
+        /// 公务舱人数
+        /// </summary>
+        
+        public int GWCRS { get; set; }
+        /// <summary>
+        /// 火车票成本
+        /// </summary>
+       
+        public decimal HCPCB { get; set; }
+        /// <summary>
+        /// 火车票系数
+        /// </summary>
+       
+        public decimal HCPXS { get; set; }
+        /// <summary>
+        /// 火车票人数
+        /// </summary>
+        
+        public int HCPRS { get; set; }
+        /// <summary>
+        /// 船票成本
+        /// </summary>
+       
+        public decimal CPCB { get; set; }
+        /// <summary>
+        /// 船票系数
+        /// </summary>
+       
+        public decimal CPXS { get; set; }
+        /// <summary>
+        /// 船票人数
+        /// </summary>
+        
+        public int CPRS { get; set; }
+        /// <summary>
+        /// 保险成本
+        /// </summary>
+       
+        public decimal BXCB { get; set; }
+        /// <summary>
+        /// 保险系数
+        /// </summary>
+       
+        public decimal BXXS { get; set; }
+        /// <summary>
+        /// 保险人数
+        /// </summary>
+        
+        public int BXRS { get; set; }
+        /// <summary>
+        /// 核酸检测成本
+        /// </summary>
+       
+        public decimal HSCB { get; set; }
+        /// <summary>
+        /// 核酸检测系数
+        /// </summary>
+       
+        public decimal HSXS { get; set; }
+        /// <summary>
+        /// 核酸检测人数
+        /// </summary>
+        
+        public int HSRS { get; set; }
+        /// <summary>
+        /// 签证成本
+        /// </summary>
+       
+        public decimal VisaCB { get; set; }
+        /// <summary>
+        /// 签证系数
+        /// </summary>
+       
+        public decimal VisaXS { get; set; }
+        /// <summary>
+        /// 签证人数
+        /// </summary>
+        
+        public int VisaRS { get; set; }
+        /// <summary>
+        /// 公务成本 : 公杂费
+        /// </summary>
+       
+        public decimal GWCB { get; set; }
+        /// <summary>
+        /// 公务系数: 公杂费
+        /// </summary>
+       
+        public decimal GWXS { get; set; }
+        /// <summary>
+        /// 公务人数 : 公杂费
+        /// </summary>
+        
+        public int GWRS { get; set; }
+        /// <summary>
+        /// 地接成本
+        /// </summary>
+       
+        public decimal DJCB { get; set; }
+
+        /// <summary>
+        /// 地接人数
+        /// </summary>
+        public int DJRS { get; set; }
+
+        /// <summary>
+        /// 地接系数
+        /// </summary>
+
+        public decimal DJXS { get; set; }
+        /// <summary>
+        /// 单间 单人成本
+        /// </summary>
+       
+        public decimal SGRCB { get; set; }
+        /// <summary>
+        /// 单间数量(人数)
+        /// </summary>
+        
+        public int SGRNumber { get; set; }
+        /// <summary>
+        /// 单间 系数
+        /// </summary>
+       
+        public decimal SGRXS { get; set; }
+        /// <summary>
+        /// 1/2标间 单人成本
+        /// </summary>
+       
+        public decimal TBRCB { get; set; }
+        /// <summary>
+        /// 1/2标间数量(人数)
+        /// </summary>
+        
+        public int TBRNumber { get; set; }
+        /// <summary>
+        /// 1/2标间  系数
+        /// </summary>
+       
+        public decimal TBRXS { get; set; }
+        /// <summary>
+        /// 小套房/豪华套房 单人成本
+        /// </summary>
+       
+        public decimal JSESCB { get; set; }
+        /// <summary>
+        /// 小套房/豪华套房数量(人数)
+        /// </summary>
+        
+        public int JSESNumber { get; set; }
+        /// <summary>
+        /// 小套房/豪华套房 系数
+        /// </summary>
+       
+        public decimal JSESXS { get; set; }
+        /// <summary>
+        /// 套房  单人成本
+        /// </summary>
+       
+        public decimal SUITECB { get; set; }
+        /// <summary>
+        /// 套房数量(人数)
+        /// </summary>
+        
+        public int SUITENumber { get; set; }
+        /// <summary>
+        /// 套房  系数
+        /// </summary>
+       
+        public decimal SUITEXS { get; set; }
+        /// <summary>
+        /// 零用金成本
+        /// </summary>
+       
+        public decimal LYJCB { get; set; }
+        /// <summary>
+        /// 零用金系数
+        /// </summary>
+       
+        public decimal LYJXS { get; set; }
+        /// <summary>
+        /// 零用金人数
+        /// </summary>
+        
+        public int LYJRS { get; set; }
+        /// <summary>
+        /// 成本完成标识  0:未完成 1:完成
+        /// </summary>
+        
+        public int IsShare { get; set; }
+
+        /// <summary>
+        /// 分段类型
+        /// </summary>
+       
+        public string CostType { get; set; }
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        public string CostTypeStartTime { get; set; }
+        /// <summary>
+        /// 结束时间
+        /// </summary>
+        public string CostTypeendTime { get; set; }
+        /// <summary>
+        /// 此段人数
+        /// </summary>
+        
+        public int CostTypenumber { get; set; }
+    }
+
+    public class GroupCostInItDto
+    {
+        public int Diid { get; set; } 
+    }
+
+
+}

+ 33 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_CheckBoxs.cs

@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    [SugarTable("Grp_CheckBoxs")]
+    public class Grp_CheckBoxs : EntityBase
+    {
+        /// <summary>
+        /// 团组id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Diid { get; set; }
+        /// <summary>
+        /// 选中区域  Top, Left, Right
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
+        public string CbType { get; set; }
+        /// <summary>
+        /// 选中的值
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(500)")]
+        public string CbValues { get; set; }
+    }
+
+    public class Grp_CheckBoxsView: Grp_CheckBoxs
+    {
+
+    }
+}

+ 57 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_CostTypeHotelNumber.cs

@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    public class Grp_CostTypeHotelNumber:EntityBase
+    {
+        /// <summary>
+        /// 单人间
+        /// </summary>
+        public int SGR { get; set; }
+
+        /// <summary>
+        /// 双人间
+        /// </summary>
+        public int TBR { get; set; }
+
+        /// <summary>
+        /// 小套房
+        /// </summary>
+        public int JSES { get; set; }
+
+        /// <summary>
+        /// 大套房
+        /// </summary>
+        public int SUITE { get; set; }
+
+        /// <summary>
+        /// 类型 Default A B ....
+        /// </summary>
+        public string Type { get; set; }
+
+        /// <summary>
+        /// 团组id
+        /// </summary>
+        public int Diid { get; set; }
+
+    }
+
+    public class Grp_CostTypeHotelNumberView: Grp_CostTypeHotelNumber
+    {
+
+    }
+
+    /// <summary>
+    /// 分段类型枚举
+    /// </summary>
+    //public enum GrouopCostType
+    //{
+    //    Default, A, B
+    //}
+
+
+}

+ 430 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_GroupCost.cs

@@ -0,0 +1,430 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    public class Grp_GroupCost: EntityBase
+    {
+        int diid;
+        /// <summary>
+        /// 团号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Diid
+        {
+            get { return diid; }
+            set { diid = value; }
+        }
+        string day;
+        /// <summary>
+        /// 天数
+        /// </summary>
+
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string DAY
+        {
+            get { return day; }
+            set { day = value; }
+        }
+        string date;
+        /// <summary>
+        /// 日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Date
+        {
+            get { return date; }
+            set { date = value; }
+        }
+
+        string itin;
+        /// <summary>
+        /// 行程描述
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string ITIN
+        {
+            get { return itin; }
+            set { itin = value; }
+        }
+        string carType;
+        /// <summary>
+        /// 车型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string CarType
+        {
+            get { return carType; }
+            set { carType = value; }
+        }
+
+        decimal carCost;
+        /// <summary>
+        /// 车费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal CarCost
+        {
+            get { return carCost; }
+            set { carCost = value; }
+        }
+
+        int carNumber;
+        /// <summary>
+        /// 车数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CarNumber
+        {
+            get { return carNumber; }
+            set { carNumber = value; }
+        }
+
+        decimal carTiming;
+        /// <summary>
+        /// 用车时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal CarTiming
+        {
+            get { return carTiming; }
+            set { carTiming = value; }
+        }
+
+        decimal tgs;
+        /// <summary>
+        ///  导游工资
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGS
+        {
+            get { return tgs; }
+            set { tgs = value; }
+        }
+
+        decimal tgwh;
+        /// <summary>
+        ///  导游工作时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGWH
+        {
+            get { return tgwh; }
+            set { tgwh = value; }
+        }
+
+        decimal tgn;
+        /// <summary>
+        ///  导游数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGN
+        {
+            get { return tgn; }
+            set { tgn = value; }
+        }
+
+        /// <summary>
+        /// 导游超时费用
+        /// </summary>
+        decimal tgof;
+
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGOF
+        {
+            get { return tgof; }
+            set { tgof = value; }
+        }
+
+        decimal tgm;
+        /// <summary>
+        /// 导游餐补
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGM
+        {
+            get { return tgm; }
+            set { tgm = value; }
+        }
+
+        decimal tga;
+        /// <summary>
+        /// 导游房补
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGA
+        {
+            get { return tga; }
+            set { tga = value; }
+        }
+
+        decimal tgtf;
+        /// <summary>
+        /// 导游交通费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGTF
+        {
+            get { return tgtf; }
+            set { tgtf = value; }
+        }
+
+        decimal tgef;
+        /// <summary>
+        /// 导游景点费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGEF
+        {
+            get { return tgef; }
+            set { tgef = value; }
+        }
+
+        decimal cfs;
+        /// <summary>
+        ///  司机工资
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal CFS
+        {
+            get { return cfs; }
+            set { cfs = value; }
+        }
+
+        /// <summary>
+        /// 司机餐补
+        /// </summary>
+        decimal cfm;
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal CFM
+        {
+            get { return cfm; }
+            set { cfm = value; }
+        }
+
+        /// <summary>
+        /// 司机超时费用
+        /// </summary>
+        decimal cfof;
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal CFOF
+        {
+            get { return cfof; }
+            set { cfof = value; }
+        }
+
+        decimal b;
+        /// <summary>
+        /// 早餐
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal B
+        {
+            get { return b; }
+            set { b = value; }
+        }
+
+        decimal l;
+        /// <summary>
+        /// 午餐
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal L
+        {
+            get { return l; }
+            set { l = value; }
+        }
+
+        decimal d;
+        /// <summary>
+        /// 晚餐
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal D
+        {
+            get { return d; }
+            set { d = value; }
+        }
+
+        decimal tbr;
+        /// <summary>
+        /// 1/2 双人间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TBR
+        {
+            get { return tbr; }
+            set { tbr = value; }
+        }
+        decimal sgr;
+        /// <summary>
+        /// 单间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal SGR
+        {
+            get { return sgr; }
+            set { sgr = value; }
+        }
+        decimal jses;
+        /// <summary>
+        /// 小套房
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal JS_ES
+        {
+            get { return jses; }
+            set { jses = value; }
+        }
+
+        decimal suite;
+        /// <summary>
+        /// 套房
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal Suite
+        {
+            get { return suite; }
+            set { suite = value; }
+        }
+
+        string accon;
+        /// <summary>
+        /// 住宿地名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string ACCON
+        {
+            get { return accon; }
+            set { accon = value; }
+        }
+
+        decimal tv;
+        /// <summary>
+        /// 公务活动费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TV
+        {
+            get { return tv; }
+            set { tv = value; }
+        }
+
+        decimal il;
+        /// <summary>
+        /// 邀请函相关费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal iL
+        {
+            get { return il; }
+            set { il = value; }
+        }
+
+        decimal iF;
+        /// <summary>
+        /// 公务翻译费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal IF
+        {
+            get { return iF; }
+            set { iF = value; }
+        }
+
+        decimal ef;
+        /// <summary>
+        /// 景点门票
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal EF
+        {
+            get { return ef; }
+            set { ef = value; }
+        }
+
+        decimal brf;
+        /// <summary>
+        /// 饮料零食水果
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal B_R_F
+        {
+            get { return brf; }
+            set { brf = value; }
+        }
+
+        decimal te;
+        /// <summary>
+        /// 出行物资
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TE
+        {
+            get { return te; }
+            set { te = value; }
+        }
+
+        decimal tgtips;
+        /// <summary>
+        /// 导游小费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TGTips
+        {
+            get { return tgtips; }
+            set { tgtips = value; }
+        }
+        decimal drvtips;
+        /// <summary>
+        /// 司机小费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal DRVTips
+        {
+            get { return drvtips; }
+            set { drvtips = value; }
+        }
+
+        decimal pc;
+        /// <summary>
+        /// 零用金
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal PC
+        {
+            get { return pc; }
+            set { pc = value; }
+        }
+
+        decimal tlf;
+        /// <summary>
+        /// 领队费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal TLF
+        {
+            get { return tlf; }
+            set { tlf = value; }
+        }
+
+        decimal ect;
+        /// <summary>
+        /// 会务费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal ECT
+        {
+            get { return ect; }
+            set { ect = value; }
+        }
+    }
+
+    public class GroupCostView: Grp_GroupCost
+    {
+
+    }
+}

+ 33 - 2
OASystem/OASystem.Domain/Entities/Groups/Grp_GroupCostParameter.cs

@@ -167,6 +167,12 @@ namespace OASystem.Domain.Entities.Groups
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
         public decimal DJCB { get; set; }
+
+        /// <summary>
+        /// 地接人数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DJRS { get; set; }
         /// <summary>
         /// 地接系数
         /// </summary>
@@ -228,7 +234,7 @@ namespace OASystem.Domain.Entities.Groups
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int SUITENumber { get; set; }
         /// <summary>
-        /// 套房  单人成本
+        /// 套房  系数
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
         public decimal SUITEXS { get; set; }
@@ -252,6 +258,31 @@ namespace OASystem.Domain.Entities.Groups
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int IsShare { get; set; }
-        
+
+        /// <summary>
+        /// 分段类型 A B 
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CostType { get; set; }
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public string CostTypeStartTime { get; set; }
+        /// <summary>
+        /// 结束时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public string CostTypeendTime { get; set; }
+        /// <summary>
+        /// 此段人数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CostTypenumber { get; set; }
+    }
+
+    public class Grp_GroupCostParameterView: Grp_GroupCostParameter
+    {
+
     }
 }

+ 23 - 0
OASystem/OASystem.Domain/ViewModels/Groups/CostType.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Groups
+{
+    public class CostTypeView
+    {
+
+
+    }
+
+    public class DelegationInfoAndIsTrueView
+    {
+        public int Id { get; set; }
+
+        public string GroupName { get; set; }
+
+        public string isTrue { get; set; }
+    }
+}

+ 61 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/CheckBoxsRepository.cs

@@ -0,0 +1,61 @@
+using Aspose.Words.Lists;
+using AutoMapper;
+using NPOI.SS.Formula.Functions;
+using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.ViewModels.CRM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class CheckBoxsRepository : BaseRepository<Grp_CheckBoxs, Grp_CheckBoxsView>
+    {
+        private readonly IMapper _mapper;
+        public CheckBoxsRepository(SqlSugarClient sqlSugar, IMapper mapper) :
+         base(sqlSugar)
+        {
+            _mapper = mapper;
+        }
+
+        public List<Grp_CheckBoxs> GetCheckBoxsByDiid(int diid)
+        {
+            return  Query(x=>x.Diid == diid).ToList();
+        }
+
+        public bool AddCheckBoxs(List<Grp_CheckBoxs> checkboxList)
+        {
+            return Adds(checkboxList) > 0;
+        }
+
+        public Task<bool> DelCheckBoxsByDiid(int diid)
+        {
+            return DeleteAsync(x => x.Diid == diid);
+        }
+
+        public async Task<bool> SaveCheckBoxs(List<Grp_CheckBoxs> checkboxList,int diid)
+        {
+            BeginTran();
+            bool isTrue = await DelCheckBoxsByDiid(diid);
+            if (checkboxList.Count > 0)
+            {
+                isTrue = AddCheckBoxs(checkboxList);
+            }
+
+            if (isTrue)
+            {
+                CommitTran();
+            }
+            else
+            {
+                RollbackTran();
+            }
+
+            return isTrue;
+
+        }
+    }
+}

+ 38 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/CostTypeHotelNumberRepository.cs

@@ -0,0 +1,38 @@
+using OASystem.Domain.Entities.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class CostTypeHotelNumberRepository : BaseRepository<Grp_CostTypeHotelNumber, Grp_CostTypeHotelNumberView>
+    {
+        public CostTypeHotelNumberRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        { }
+
+        public List<Grp_CostTypeHotelNumber> GetCostTypeHotelNumberByDiid(int diid)
+        {
+            return Query(x=>x.Diid == diid).ToList();
+        }
+
+        public async Task<bool> SaveHotelNumber(List<Grp_CostTypeHotelNumber> List,int Userid)
+        {
+            var AddList = List.Where(x=>x.Id == 0).ToList();
+            var UpdateList = List.Where(x=>x.Id != 0).ToList();
+            BeginTran();
+            bool isTrue = false;
+            if (AddList.Count > 0)
+            {
+                AddList.ForEach(x => { x.CreateUserId = Userid; x.CreateTime = DateTime.Now; });
+                isTrue = Adds(AddList) > 0;
+            }
+            if(UpdateList.Count > 0)
+            {
+                isTrue = await _sqlSugar.Updateable<Grp_CostTypeHotelNumber>(UpdateList).ExecuteCommandHasChangeAsync();
+            }
+            return isTrue;
+        }
+    }
+}

+ 42 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/GroupCostParameterRepository.cs

@@ -0,0 +1,42 @@
+using AutoMapper;
+using OASystem.Domain.Entities.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class GroupCostParameterRepository : BaseRepository<Grp_GroupCostParameter, Grp_GroupCostParameterView>
+    {
+        public GroupCostParameterRepository(SqlSugarClient sqlSugar) :
+        base(sqlSugar)
+        {
+        }
+
+        public List<Grp_GroupCostParameter> GetGroupCostParameterListByDiid(int diid)
+        {
+           return Query(x=>x.DiId == diid).ToList();
+        }
+
+
+        public async Task<bool> SaveAsync(List<Grp_GroupCostParameter> List,int UserId)
+        {
+            var AddList = List.Where(x => x.Id == 0).ToList();
+            var UpdateList = List.Where(x => x.Id != 0).ToList();
+            BeginTran();
+            bool isTrue = false;
+            if (AddList.Count > 0)
+            {
+                AddList.ForEach(x => { x.CreateUserId = UserId; x.CreateTime = DateTime.Now; });
+                isTrue = Adds(AddList) > 0;
+            }
+            if (UpdateList.Count > 0)
+            {
+                isTrue = await _sqlSugar.Updateable<Grp_GroupCostParameter>(UpdateList).ExecuteCommandHasChangeAsync();
+            }
+            return isTrue;
+        }
+    }
+}

+ 53 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/GroupCostRepository.cs

@@ -0,0 +1,53 @@
+using OASystem.Domain.Entities.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class GroupCostRepository:BaseRepository<Grp_GroupCost, GroupCostView>
+    {
+        public GroupCostRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        {}
+
+        public List<Grp_GroupCost> GetAllByDiid(int diid)
+        {
+            return Query(x => x.Diid == diid).ToList();
+        }
+
+        public List<Grp_GroupCost> GetAll()
+        {
+            return Query(x=> x.IsDel < 1).ToList();
+        }
+
+        public async Task<bool> SaveGroupCostList(List<Grp_GroupCost> costList,int diid)
+        {
+            BeginTran();
+            bool isTrue = await DeleteGroupCostList(diid);
+            if (costList.Count > 0)
+            {
+                isTrue = Adds(costList) > 0;
+            }
+            if (isTrue)
+            {
+                CommitTran();
+            }
+            else
+            {
+                RollbackTran();
+            }
+
+            return isTrue; 
+        }
+
+
+        public Task<bool> DeleteGroupCostList(int diid)
+        {
+            return  DeleteAsync(x => x.Diid == diid);
+        }
+
+
+    }
+}