diff --git a/.DS_Store b/.DS_Store index beba05f..415fb3b 100644 --- a/.DS_Store +++ b/.DS_Store diff --git a/netcore/src/.DS_Store b/netcore/src/.DS_Store index 1087253..141eeaa 100644 --- a/netcore/src/.DS_Store +++ b/netcore/src/.DS_Store diff --git a/netcore/src/Application/.DS_Store b/netcore/src/Application/.DS_Store index dedb8f3..a094ecd 100644 --- a/netcore/src/Application/.DS_Store +++ b/netcore/src/Application/.DS_Store diff --git a/netcore/src/Application/NCC.API/.DS_Store b/netcore/src/Application/NCC.API/.DS_Store index 4ad8406..4d4d2e7 100644 --- a/netcore/src/Application/NCC.API/.DS_Store +++ b/netcore/src/Application/NCC.API/.DS_Store diff --git a/netcore/src/Modularity/.DS_Store b/netcore/src/Modularity/.DS_Store index 2203b68..e453629 100644 --- a/netcore/src/Modularity/.DS_Store +++ b/netcore/src/Modularity/.DS_Store diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_jlmxb/LqJlmxbEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_jlmxb/LqJlmxbEntity.cs index 3410297..77d6ce7 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_jlmxb/LqJlmxbEntity.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_jlmxb/LqJlmxbEntity.cs @@ -16,96 +16,96 @@ namespace NCC.Extend.Entitys.lq_jlmxb /// [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] public string Id { get; set; } - + /// /// 门店编号 /// - [SugarColumn(ColumnName = "mdbh")] + [SugarColumn(ColumnName = "mdbh")] public string Mdbh { get; set; } - + /// /// 门店名称 /// - [SugarColumn(ColumnName = "mdmc")] + [SugarColumn(ColumnName = "mdmc")] public string Mdmc { get; set; } - + /// /// 岗位 /// - [SugarColumn(ColumnName = "gw")] + [SugarColumn(ColumnName = "gw")] public string Gw { get; set; } - + /// /// 健康师 /// - [SugarColumn(ColumnName = "jks")] + [SugarColumn(ColumnName = "jks")] public string Jks { get; set; } - + /// /// 医美秒杀卡 /// - [SugarColumn(ColumnName = "ymmsk")] + [SugarColumn(ColumnName = "ymmsk")] public string Ymmsk { get; set; } - + /// /// 科技部秒杀卡 /// - [SugarColumn(ColumnName = "kjbmsk")] + [SugarColumn(ColumnName = "kjbmsk")] public string Kjbmsk { get; set; } - + /// /// 成交奖 /// - [SugarColumn(ColumnName = "cjj")] + [SugarColumn(ColumnName = "cjj")] public string Cjj { get; set; } - + /// /// PK /// - [SugarColumn(ColumnName = "pk")] + [SugarColumn(ColumnName = "pk")] public string Pk { get; set; } - + /// /// 体验 /// - [SugarColumn(ColumnName = "ty")] + [SugarColumn(ColumnName = "ty")] public string Ty { get; set; } - + /// /// 打版 /// - [SugarColumn(ColumnName = "db")] + [SugarColumn(ColumnName = "db")] public string Db { get; set; } - + /// /// 沉睡 /// - [SugarColumn(ColumnName = "cs")] + [SugarColumn(ColumnName = "cs")] public string Cs { get; set; } - + /// /// 嘉宾 /// - [SugarColumn(ColumnName = "jb")] + [SugarColumn(ColumnName = "jb")] public string Jb { get; set; } - + /// /// 合计 /// - [SugarColumn(ColumnName = "hj")] + [SugarColumn(ColumnName = "hj")] public string Hj { get; set; } - + /// /// 扣除明细 /// - [SugarColumn(ColumnName = "kcmx")] + [SugarColumn(ColumnName = "kcmx")] public string Kcmx { get; set; } - + /// /// 不含嘉宾 /// - [SugarColumn(ColumnName = "bhjb")] + [SugarColumn(ColumnName = "bhjb")] public string Bhjb { get; set; } - + } } \ No newline at end of file diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqCpxxService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqCpxxService.cs index a06a7c9..8c00c70 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqCpxxService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqCpxxService.cs @@ -28,7 +28,7 @@ namespace NCC.Extend.LqCpxx /// /// 产品资料服务 /// - [ApiDescriptionSettings(Tag = "Extend",Name = "LqCpxx", Order = 200)] + [ApiDescriptionSettings(Tag = "Extend", Name = "LqCpxx", Order = 200)] [Route("api/Extend/[controller]")] public class LqCpxxService : ILqCpxxService, IDynamicApiController, ITransient { @@ -43,7 +43,7 @@ namespace NCC.Extend.LqCpxx ISqlSugarRepository lqCpxxRepository, IUserManager userManager) { - _lqCpxxRepository = lqCpxxRepository; + _lqCpxxRepository = lqCpxxRepository; _db = _lqCpxxRepository.Context; _userManager = userManager; } @@ -93,24 +93,24 @@ namespace NCC.Extend.LqCpxx .WhereIF(queryHtqdksrq != null, p => p.Htqdksrq <= new DateTime(endHtqdksrq.ToDate().Year, endHtqdksrq.ToDate().Month, endHtqdksrq.ToDate().Day, 23, 59, 59)) .WhereIF(queryHtqdjsrq != null, p => p.Htqdjsrq >= new DateTime(startHtqdjsrq.ToDate().Year, startHtqdjsrq.ToDate().Month, startHtqdjsrq.ToDate().Day, 0, 0, 0)) .WhereIF(queryHtqdjsrq != null, p => p.Htqdjsrq <= new DateTime(endHtqdjsrq.ToDate().Year, endHtqdjsrq.ToDate().Month, endHtqdjsrq.ToDate().Day, 23, 59, 59)) - .Select(it=> new LqCpxxListOutput + .Select(it => new LqCpxxListOutput { id = it.Id, - cpmc=it.Cpmc, - bzj=it.Bzj, - sjzt=it.Sjzt, - syzt=it.Syzt, - tjfl=it.Tjfl, - gsck=it.Gsck, - gsbm=it.Gsbm, - bzdw=it.Bzdw, - dwhs=it.Dwhs, - zbq=it.Zbq, - gysxx=it.Gysxx, - htqdksrq=it.Htqdksrq, - htqdjsrq=it.Htqdjsrq, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); - return PageResult.SqlSugarPageResult(data); + cpmc = it.Cpmc, + bzj = it.Bzj, + sjzt = it.Sjzt, + syzt = it.Syzt, + tjfl = it.Tjfl, + gsck = it.Gsck, + gsbm = it.Gsbm, + bzdw = it.Bzdw, + dwhs = it.Dwhs, + zbq = it.Zbq, + gysxx = it.Gysxx, + htqdksrq = it.Htqdksrq, + htqdjsrq = it.Htqdjsrq, + }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(data); } /// @@ -160,24 +160,24 @@ namespace NCC.Extend.LqCpxx .WhereIF(queryHtqdksrq != null, p => p.Htqdksrq <= new DateTime(endHtqdksrq.ToDate().Year, endHtqdksrq.ToDate().Month, endHtqdksrq.ToDate().Day, 23, 59, 59)) .WhereIF(queryHtqdjsrq != null, p => p.Htqdjsrq >= new DateTime(startHtqdjsrq.ToDate().Year, startHtqdjsrq.ToDate().Month, startHtqdjsrq.ToDate().Day, 0, 0, 0)) .WhereIF(queryHtqdjsrq != null, p => p.Htqdjsrq <= new DateTime(endHtqdjsrq.ToDate().Year, endHtqdjsrq.ToDate().Month, endHtqdjsrq.ToDate().Day, 23, 59, 59)) - .Select(it=> new LqCpxxListOutput + .Select(it => new LqCpxxListOutput { id = it.Id, - cpmc=it.Cpmc, - bzj=it.Bzj, - sjzt=it.Sjzt, - syzt=it.Syzt, - tjfl=it.Tjfl, - gsck=it.Gsck, - gsbm=it.Gsbm, - bzdw=it.Bzdw, - dwhs=it.Dwhs, - zbq=it.Zbq, - gysxx=it.Gysxx, - htqdksrq=it.Htqdksrq, - htqdjsrq=it.Htqdjsrq, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); - return data; + cpmc = it.Cpmc, + bzj = it.Bzj, + sjzt = it.Sjzt, + syzt = it.Syzt, + tjfl = it.Tjfl, + gsck = it.Gsck, + gsbm = it.Gsbm, + bzdw = it.Bzdw, + dwhs = it.Dwhs, + zbq = it.Zbq, + gysxx = it.Gysxx, + htqdksrq = it.Htqdksrq, + htqdjsrq = it.Htqdjsrq, + }).MergeTable().OrderBy(sidx + " " + input.sort).ToListAsync(); + return data; } /// @@ -199,7 +199,7 @@ namespace NCC.Extend.LqCpxx { exportData = await this.GetNoPagingList(input); } - List paramList = "[{\"value\":\"产品编号\",\"field\":\"id\"},{\"value\":\"产品名称\",\"field\":\"cpmc\"},{\"value\":\"标准价\",\"field\":\"bzj\"},{\"value\":\"上架状态\",\"field\":\"sjzt\"},{\"value\":\"使用状态\",\"field\":\"syzt\"},{\"value\":\"统计分类\",\"field\":\"tjfl\"},{\"value\":\"归属仓库\",\"field\":\"gsck\"},{\"value\":\"归属部门\",\"field\":\"gsbm\"},{\"value\":\"标准单位\",\"field\":\"bzdw\"},{\"value\":\"单位换算\",\"field\":\"dwhs\"},{\"value\":\"质保期\",\"field\":\"zbq\"},{\"value\":\"供应商信息\",\"field\":\"gysxx\"},{\"value\":\"合同签订日期\",\"field\":\"htqdksrq\"},{\"value\":\"合同结束日期\",\"field\":\"htqdjsrq\"},]".ToList(); + List paramList = "[{\"value\":\"产品编号\",\"field\":\"id\"},{\"value\":\"产品名称\",\"field\":\"cpmc\"},{\"value\":\"标准价\",\"field\":\"bzj\"},{\"value\":\"上架状态\",\"field\":\"sjzt\"},{\"value\":\"使用状态\",\"field\":\"syzt\"},{\"value\":\"统计分类\",\"field\":\"tjfl\"},{\"value\":\"归属仓库\",\"field\":\"gsck\"},{\"value\":\"归属部门\",\"field\":\"gsbm\"},{\"value\":\"标准单位\",\"field\":\"bzdw\"},{\"value\":\"单位换算\",\"field\":\"dwhs\"},{\"value\":\"质保期\",\"field\":\"zbq\"},{\"value\":\"供应商信息\",\"field\":\"gysxx\"},{\"value\":\"合同签订日期\",\"field\":\"htqdksrq\"},{\"value\":\"合同结束日期\",\"field\":\"htqdjsrq\"},]".ToList(); ExcelConfig excelconfig = new ExcelConfig(); excelconfig.FileName = "产品资料.xls"; excelconfig.HeadFont = "微软雅黑"; @@ -242,7 +242,7 @@ namespace NCC.Extend.LqCpxx //开启事务 _db.BeginTran(); //批量删除产品资料 - await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync(); + await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); //关闭事务 _db.CommitTran(); } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs index 9ad8486..1730d5f 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs @@ -1,40 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NCC.ClayObject; +using NCC.Common.Configuration; using NCC.Common.Core.Manager; using NCC.Common.Enum; using NCC.Common.Extension; using NCC.Common.Filter; +using NCC.Common.Helper; +using NCC.Common.Model.NPOI; +using NCC.DataEncryption; using NCC.Dependency; using NCC.DynamicApiController; -using NCC.FriendlyException; -using NCC.Extend.Interfaces.LqHytkHytk; -using Mapster; -using Microsoft.AspNetCore.Mvc; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using NCC.Extend.Entitys.lq_hytk_hytk; -using NCC.Extend.Entitys.lq_hytk_mx; -using NCC.Extend.Entitys.lq_hytk_jksyj; -using NCC.Extend.Entitys.lq_hytk_kjbsyj; using NCC.Extend.Entitys.Dto.LqHytkHytk; -using NCC.Extend.Entitys.Dto.LqHytkMx; using NCC.Extend.Entitys.Dto.LqHytkJksyj; using NCC.Extend.Entitys.Dto.LqHytkKjbsyj; -using Yitter.IdGenerator; -using NCC.Common.Helper; +using NCC.Extend.Entitys.Dto.LqHytkMx; +using NCC.Extend.Entitys.lq_hytk_hytk; +using NCC.Extend.Entitys.lq_hytk_jksyj; +using NCC.Extend.Entitys.lq_hytk_kjbsyj; +using NCC.Extend.Entitys.lq_hytk_mx; +using NCC.Extend.Interfaces.LqHytkHytk; +using NCC.FriendlyException; using NCC.JsonSerialization; -using NCC.Common.Model.NPOI; -using NCC.Common.Configuration; -using NCC.DataEncryption; -using NCC.ClayObject; +using SqlSugar; +using Yitter.IdGenerator; namespace NCC.Extend.LqHytkHytk { /// /// 退卡_信息表服务 /// - [ApiDescriptionSettings(Tag = "绿纤退卡信息表服务",Name = "LqHytkHytk", Order = 200)] + [ApiDescriptionSettings(Tag = "绿纤退卡信息表服务", Name = "LqHytkHytk", Order = 200)] [Route("api/Extend/[controller]")] public class LqHytkHytkService : ILqHytkHytkService, IDynamicApiController, ITransient { @@ -53,9 +53,10 @@ namespace NCC.Extend.LqHytkHytk ISqlSugarRepository lqHytkMxRepository, ISqlSugarRepository lqHytkJksyjRepository, ISqlSugarRepository lqHytkKjbsyjRepository, - IUserManager userManager) + IUserManager userManager + ) { - _lqHytkHytkRepository = lqHytkHytkRepository; + _lqHytkHytkRepository = lqHytkHytkRepository; _lqHytkMxRepository = lqHytkMxRepository; _lqHytkJksyjRepository = lqHytkJksyjRepository; _lqHytkKjbsyjRepository = lqHytkKjbsyjRepository; @@ -67,12 +68,13 @@ namespace NCC.Extend.LqHytkHytk /// 获取退卡信息列表 /// /// 查询参数 - /// + /// [HttpGet("")] public async Task GetList([FromQuery] LqHytkHytkListQueryInput input) { var sidx = input.sidx == null ? "id" : input.sidx; - List queryTksj = input.tksj != null ? input.tksj.Split(',').ToObeject>() : null; + List queryTksj = + input.tksj != null ? input.tksj.Split(',').ToObeject>() : null; DateTime? startTksj = queryTksj != null ? Ext.GetDateTime(queryTksj.First()) : null; DateTime? endTksj = queryTksj != null ? Ext.GetDateTime(queryTksj.Last()) : null; var data = await _db.Queryable() @@ -89,30 +91,60 @@ namespace NCC.Extend.LqHytkHytk .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz)) .WhereIF(!string.IsNullOrEmpty(input.tkzt), p => p.Tkzt.Contains(input.tkzt)) .WhereIF(!string.IsNullOrEmpty(input.tkyy), p => p.Tkyy.Contains(input.tkyy)) - .WhereIF(!string.IsNullOrEmpty(input.fileUrl), p => p.FileUrl.Contains(input.fileUrl)) - .WhereIF(queryTksj != null, p => p.Tksj >= new DateTime(startTksj.ToDate().Year, startTksj.ToDate().Month, startTksj.ToDate().Day, 0, 0, 0)) - .WhereIF(queryTksj != null, p => p.Tksj <= new DateTime(endTksj.ToDate().Year, endTksj.ToDate().Month, endTksj.ToDate().Day, 23, 59, 59)) + .WhereIF( + !string.IsNullOrEmpty(input.fileUrl), + p => p.FileUrl.Contains(input.fileUrl) + ) + .WhereIF( + queryTksj != null, + p => + p.Tksj + >= new DateTime( + startTksj.ToDate().Year, + startTksj.ToDate().Month, + startTksj.ToDate().Day, + 0, + 0, + 0 + ) + ) + .WhereIF( + queryTksj != null, + p => + p.Tksj + <= new DateTime( + endTksj.ToDate().Year, + endTksj.ToDate().Month, + endTksj.ToDate().Day, + 23, + 59, + 59 + ) + ) .WhereIF(!string.IsNullOrEmpty(input.czry), p => p.Czry.Equals(input.czry)) - .Select(it=> new LqHytkHytkListOutput + .Select(it => new LqHytkHytkListOutput { id = it.Id, - md=it.Md, - mdbh=it.Mdbh, - mdmc=it.Mdmc, - hy=it.Hy, - hymc=it.Hymc, - hyzh=it.Hyzh, - gklx=it.Gklx, - tkje=it.Tkje, - sgfy=it.Sgfy, - bz=it.Bz, - tkzt=it.Tkzt, - tkyy=it.Tkyy, - tksj=it.Tksj, - czry=it.Czry, - fileUrl=it.FileUrl, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); - return PageResult.SqlSugarPageResult(data); + md = it.Md, + mdbh = it.Mdbh, + mdmc = it.Mdmc, + hy = it.Hy, + hymc = it.Hymc, + hyzh = it.Hyzh, + gklx = it.Gklx, + tkje = it.Tkje, + sgfy = it.Sgfy, + bz = it.Bz, + tkzt = it.Tkzt, + tkyy = it.Tkyy, + tksj = it.Tksj, + czry = it.Czry, + fileUrl = it.FileUrl, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(data); } /// @@ -120,7 +152,7 @@ namespace NCC.Extend.LqHytkHytk /// /// /// 创建退卡记录及其关联的品项明细、健康师业绩、科技部老师业绩信息 - /// + /// /// 示例请求: /// ```json /// { @@ -172,7 +204,7 @@ namespace NCC.Extend.LqHytkHytk /// ] /// } /// ``` - /// + /// /// 参数说明: /// - md: 门店ID /// - hy: 会员ID @@ -192,22 +224,24 @@ namespace NCC.Extend.LqHytkHytk entity.F_CreateTime = DateTime.Now; entity.F_CreateUser = userInfo.userId; entity.F_DeleteMark = 0; - entity.Tksj = DateTime.Now; + entity.Tksj = DateTime.Now; entity.Czry = userInfo.userId; - + try { // 开启事务 _db.BeginTran(); - + // 新增退卡主表记录 - var newEntity = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteReturnEntityAsync(); + var newEntity = await _db.Insertable(entity) + .IgnoreColumns(ignoreNullColumn: true) + .ExecuteReturnEntityAsync(); // 收集所有需要插入的实体,然后批量插入 var allMxEntities = new List(); var allJksyjEntities = new List(); var allKjbsyjEntities = new List(); - + // 处理品项明细列表 if (input.lqHytkMxList != null && input.lqHytkMxList.Any()) { @@ -228,79 +262,84 @@ namespace NCC.Extend.LqHytkHytk F_ProjectNumber = item.F_ProjectNumber ?? 1, F_IsEnabled = item.F_IsEnabled ?? 1, F_SourceType = item.F_SourceType, - F_TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), + F_TotalPrice = + item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), }; allMxEntities.Add(lqHytkMxEntity); - + // 收集该品项关联的健康师业绩 if (item.lqHytkJksyjList != null && item.lqHytkJksyjList.Any()) { foreach (var ijks_tem in item.lqHytkJksyjList) { - allJksyjEntities.Add(new LqHytkJksyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Gltkbh = newEntity.Id, - Jks = ijks_tem.jks, - Jksxm = ijks_tem.jksxm, - Jkszh = ijks_tem.jkszh, - Jksyj = ijks_tem.jksyj, - Tksj = DateTime.Now, - F_jsjid = ijks_tem.F_jsjid, - F_tkpxid = ijks_tem.F_tkpxid, - F_LaborCost = ijks_tem.F_LaborCost, - F_tkpxNumber = ijks_tem.F_tkpxNumber, - F_CreateTime = DateTime.Now, - F_CreateUser = userInfo.userId, - F_DeleteMark = 0, - }); + allJksyjEntities.Add( + new LqHytkJksyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Gltkbh = newEntity.Id, + Jks = ijks_tem.jks, + Jksxm = ijks_tem.jksxm, + Jkszh = ijks_tem.jkszh, + Jksyj = ijks_tem.jksyj, + Tksj = DateTime.Now, + F_jsjid = ijks_tem.F_jsjid, + F_tkpxid = ijks_tem.F_tkpxid, + F_LaborCost = ijks_tem.F_LaborCost, + F_tkpxNumber = ijks_tem.F_tkpxNumber, + F_CreateTime = DateTime.Now, + F_CreateUser = userInfo.userId, + F_DeleteMark = 0, + } + ); } } - + // 收集该品项关联的科技部老师业绩 if (item.lqHytkKjbsyjList != null && item.lqHytkKjbsyjList.Any()) { foreach (var ikjbs_tem in item.lqHytkKjbsyjList) { - allKjbsyjEntities.Add(new LqHytkKjbsyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Gltkbh = newEntity.Id, - Kjbls = ikjbs_tem.kjbls, - Kjblsxm = ikjbs_tem.kjblsxm, - Kjblszh = ikjbs_tem.kjblszh, - Kjblsyj = ikjbs_tem.kjblsyj, - Tksj = DateTime.Now, - F_tkpxid = ikjbs_tem.F_tkpxid, - F_LaborCost = ikjbs_tem.F_LaborCost, - F_tkpxNumber = ikjbs_tem.F_tkpxNumber, - F_CreateTime = DateTime.Now, - F_CreateUser = userInfo.userId, - F_DeleteMark = 0, - }); + allKjbsyjEntities.Add( + new LqHytkKjbsyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Gltkbh = newEntity.Id, + Kjbls = ikjbs_tem.kjbls, + Kjblsxm = ikjbs_tem.kjblsxm, + Kjblszh = ikjbs_tem.kjblszh, + Kjblsyj = ikjbs_tem.kjblsyj, + Tksj = DateTime.Now, + F_tkpxid = ikjbs_tem.F_tkpxid, + F_LaborCost = ikjbs_tem.F_LaborCost, + F_tkpxNumber = ikjbs_tem.F_tkpxNumber, + F_CreateTime = DateTime.Now, + F_CreateUser = userInfo.userId, + F_DeleteMark = 0, + } + ); } } } } - + // 批量插入品项明细 if (allMxEntities.Any()) { await _db.Insertable(allMxEntities).ExecuteCommandAsync(); } - + // 批量插入健康师业绩 if (allJksyjEntities.Any()) { await _db.Insertable(allJksyjEntities).ExecuteCommandAsync(); } - + // 批量插入科技部老师业绩 if (allKjbsyjEntities.Any()) { await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync(); } - + // 关闭事务 _db.CommitTran(); } @@ -332,25 +371,31 @@ namespace NCC.Extend.LqHytkHytk entity.Id = id; entity.F_ModifyTime = DateTime.Now; entity.F_ModifyUser = userInfo.userId; - + try { // 开启事务 _db.BeginTran(); - + // 更新退卡主表记录 await _db.Updateable(entity).IgnoreColumns(true).ExecuteCommandAsync(); - + // 删除原有的关联数据 - await _db.Deleteable().Where(x => x.Gltkbh == id).ExecuteCommandAsync(); - await _db.Deleteable().Where(x => x.Gltkbh == id).ExecuteCommandAsync(); - await _db.Deleteable().Where(x => x.Gltkbh == id).ExecuteCommandAsync(); - + await _db.Deleteable() + .Where(x => x.Gltkbh == id) + .ExecuteCommandAsync(); + await _db.Deleteable() + .Where(x => x.Gltkbh == id) + .ExecuteCommandAsync(); + await _db.Deleteable() + .Where(x => x.Gltkbh == id) + .ExecuteCommandAsync(); + // 收集所有需要插入的实体,然后批量插入 var allMxEntities = new List(); var allJksyjEntities = new List(); var allKjbsyjEntities = new List(); - + // 处理品项明细列表 if (input.lqHytkMxList != null && input.lqHytkMxList.Any()) { @@ -371,79 +416,82 @@ namespace NCC.Extend.LqHytkHytk F_ProjectNumber = item.F_ProjectNumber ?? 1, F_IsEnabled = item.F_IsEnabled ?? 1, F_SourceType = item.F_SourceType, - F_TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), + F_TotalPrice = + item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), }; allMxEntities.Add(lqHytkMxEntity); - + // 收集该品项关联的健康师业绩 if (item.lqHytkJksyjList != null && item.lqHytkJksyjList.Any()) { foreach (var ijks_tem in item.lqHytkJksyjList) { - allJksyjEntities.Add(new LqHytkJksyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Gltkbh = id, - Jks = ijks_tem.jks, - Jksxm = ijks_tem.jksxm, - Jkszh = ijks_tem.jkszh, - Jksyj = ijks_tem.jksyj, - Tksj = DateTime.Now, - F_jsjid = ijks_tem.F_jsjid, - F_tkpxid = ijks_tem.F_tkpxid, - F_LaborCost = ijks_tem.F_LaborCost, - F_tkpxNumber = ijks_tem.F_tkpxNumber, - F_CreateTime = DateTime.Now, - F_CreateUser = userInfo.userId, - F_DeleteMark = 0, - }); + allJksyjEntities.Add( + new LqHytkJksyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Gltkbh = id, + Jks = ijks_tem.jks, + Jksxm = ijks_tem.jksxm, + Jkszh = ijks_tem.jkszh, + Jksyj = ijks_tem.jksyj, + Tksj = DateTime.Now, + F_jsjid = ijks_tem.F_jsjid, + F_tkpxid = ijks_tem.F_tkpxid, + F_LaborCost = ijks_tem.F_LaborCost, + F_tkpxNumber = ijks_tem.F_tkpxNumber, + F_CreateTime = DateTime.Now, + F_CreateUser = userInfo.userId, + F_DeleteMark = 0, + } + ); } } - + // 收集该品项关联的科技部老师业绩 if (item.lqHytkKjbsyjList != null && item.lqHytkKjbsyjList.Any()) { foreach (var ikjbs_tem in item.lqHytkKjbsyjList) { - allKjbsyjEntities.Add(new LqHytkKjbsyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Gltkbh = id, - Kjbls = ikjbs_tem.kjbls, - Kjblsxm = ikjbs_tem.kjblsxm, - Kjblszh = ikjbs_tem.kjblszh, - Kjblsyj = ikjbs_tem.kjblsyj, - Tksj = DateTime.Now, - F_tkpxid = ikjbs_tem.F_tkpxid, - F_LaborCost = ikjbs_tem.F_LaborCost, - F_tkpxNumber = ikjbs_tem.F_tkpxNumber, - F_CreateTime = DateTime.Now, - F_CreateUser = userInfo.userId, - F_DeleteMark = 0, - }); + allKjbsyjEntities.Add( + new LqHytkKjbsyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Gltkbh = id, + Kjbls = ikjbs_tem.kjbls, + Kjblsxm = ikjbs_tem.kjblsxm, + Kjblszh = ikjbs_tem.kjblszh, + Kjblsyj = ikjbs_tem.kjblsyj, + Tksj = DateTime.Now, + F_tkpxid = ikjbs_tem.F_tkpxid, + F_LaborCost = ikjbs_tem.F_LaborCost, + F_tkpxNumber = ikjbs_tem.F_tkpxNumber, + F_CreateTime = DateTime.Now, + F_CreateUser = userInfo.userId, + F_DeleteMark = 0, + } + ); } } } } - + // 批量插入品项明细 if (allMxEntities.Any()) { await _db.Insertable(allMxEntities).ExecuteCommandAsync(); } - + // 批量插入健康师业绩 if (allJksyjEntities.Any()) { await _db.Insertable(allJksyjEntities).ExecuteCommandAsync(); } - // 批量插入科技部老师业绩 if (allKjbsyjEntities.Any()) { await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync(); } - // 关闭事务 _db.CommitTran(); } @@ -476,7 +524,7 @@ namespace NCC.Extend.LqHytkHytk /// /// 获取退卡记录及其关联的品项明细、健康师业绩、科技部老师业绩信息 /// 按照退卡的完整格式返回数据,不包含汇总信息 - /// + /// /// 返回数据结构: /// - 主表信息:退卡基础信息、门店信息、会员信息、退卡金额等 /// - 品项明细列表:每个品项包含完整的项目信息(项目次数、是否有效、来源类型等) @@ -532,7 +580,7 @@ namespace NCC.Extend.LqHytkHytk F_ProjectNumber = mx.F_ProjectNumber, F_IsEnabled = mx.F_IsEnabled, F_SourceType = mx.F_SourceType, - F_TotalPrice = mx.F_TotalPrice + F_TotalPrice = mx.F_TotalPrice, }; // 关联该品项的健康师业绩 diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqJlmxbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqJlmxbService.cs index 7ee78cb..e880a16 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqJlmxbService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqJlmxbService.cs @@ -165,7 +165,7 @@ namespace NCC.Extend.LqJlmxb db=it.Db, cs=it.Cs, jb=it.Jb, - hj=it.Hj, + hj = it.Hj, kcmx=it.Kcmx, bhjb=it.Bhjb, }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs index 7585b15..d541651 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs @@ -1,35 +1,35 @@ -using NCC.Common.Core.Manager; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NCC.ClayObject; +using NCC.Common.Configuration; +using NCC.Common.Core.Manager; using NCC.Common.Enum; using NCC.Common.Extension; using NCC.Common.Filter; +using NCC.Common.Helper; +using NCC.Common.Model.NPOI; +using NCC.DataEncryption; using NCC.Dependency; using NCC.DynamicApiController; -using NCC.FriendlyException; -using NCC.Extend.Interfaces.LqKdKdjlb; -using Mapster; -using Microsoft.AspNetCore.Mvc; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using NCC.Extend.Entitys.lq_kd_kdjlb; +using NCC.Extend.Entitys.Dto.LqKdKdjlb; +using NCC.Extend.Entitys.lq_jinsanjiao_user; using NCC.Extend.Entitys.lq_kd_jksyj; +using NCC.Extend.Entitys.lq_kd_kdjlb; using NCC.Extend.Entitys.lq_kd_kjbsyj; using NCC.Extend.Entitys.lq_kd_pxmx; -using NCC.Extend.Entitys.Dto.LqKdKdjlb; -using Yitter.IdGenerator; -using NCC.Common.Helper; -using NCC.JsonSerialization; -using NCC.Common.Model.NPOI; -using NCC.Common.Configuration; -using NCC.DataEncryption; -using NCC.ClayObject; +using NCC.Extend.Entitys.lq_xmzl; +using NCC.Extend.Interfaces.LqKdKdjlb; using NCC.Extend.Utils; -using System.Net.Http; -using NCC.Extend.Entitys.lq_jinsanjiao_user; +using NCC.FriendlyException; +using NCC.JsonSerialization; using NCC.System.Entitys.Permission; -using NCC.Extend.Entitys.lq_xmzl; +using SqlSugar; +using Yitter.IdGenerator; namespace NCC.Extend.LqKdKdjlb { @@ -59,7 +59,8 @@ namespace NCC.Extend.LqKdKdjlb ISqlSugarRepository lqKdPxmxRepository, IUserManager userManager, WeChatBotService weChatBotService, - LqKdKdjlbStringGenerator stringGenerator) + LqKdKdjlbStringGenerator stringGenerator + ) { _lqKdKdjlbRepository = lqKdKdjlbRepository; _db = _lqKdKdjlbRepository.Context; @@ -70,6 +71,7 @@ namespace NCC.Extend.LqKdKdjlb _weChatBotService = weChatBotService; _stringGenerator = stringGenerator; } + #region 获取开单记录表 /// /// 获取开单记录表 @@ -77,7 +79,7 @@ namespace NCC.Extend.LqKdKdjlb /// /// 获取开单记录及其关联的品项明细、健康师业绩、科技部老师业绩信息 /// 按照开单的完整格式返回数据,不包含汇总信息 - /// + /// /// 返回数据结构: /// - 主表信息:开单基础信息、业绩信息、支付信息、会员信息等 /// - 品项明细列表:每个品项包含完整的项目信息(项目次数、是否有效、来源类型等) @@ -134,7 +136,7 @@ namespace NCC.Extend.LqKdKdjlb sourceType = pxmx.SourceType, memberId = pxmx.MemberId, createTime = pxmx.CreateTIme, - totalPrice = pxmx.TotalPrice + totalPrice = pxmx.TotalPrice, }; // 关联该品项的健康师业绩 @@ -166,24 +168,50 @@ namespace NCC.Extend.LqKdKdjlb #endregion #region 获取开单记录表列表 + /// - /// 获取开单记录表列表 - /// - /// 请求参数 - /// + /// 获取开单记录表列表 + /// + /// 请求参数 + /// [HttpGet("")] public async Task GetList([FromQuery] LqKdKdjlbListQueryInput input) { var sidx = input.sidx == null ? "id" : input.sidx; - List queryKdrq = input.kdrq != null ? input.kdrq.Split(',').ToObeject>() : null; + List queryKdrq = + input.kdrq != null ? input.kdrq.Split(',').ToObeject>() : null; DateTime? startKdrq = queryKdrq != null ? Ext.GetDateTime(queryKdrq.First()) : null; DateTime? endKdrq = queryKdrq != null ? Ext.GetDateTime(queryKdrq.Last()) : null; var data = await _db.Queryable() .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) .WhereIF(!string.IsNullOrEmpty(input.djmd), p => p.Djmd.Equals(input.djmd)) .WhereIF(!string.IsNullOrEmpty(input.jsj), p => p.Jsj.Equals(input.jsj)) - .WhereIF(queryKdrq != null, p => p.Kdrq >= new DateTime(startKdrq.ToDate().Year, startKdrq.ToDate().Month, startKdrq.ToDate().Day, 0, 0, 0)) - .WhereIF(queryKdrq != null, p => p.Kdrq <= new DateTime(endKdrq.ToDate().Year, endKdrq.ToDate().Month, endKdrq.ToDate().Day, 23, 59, 59)) + .WhereIF( + queryKdrq != null, + p => + p.Kdrq + >= new DateTime( + startKdrq.ToDate().Year, + startKdrq.ToDate().Month, + startKdrq.ToDate().Day, + 0, + 0, + 0 + ) + ) + .WhereIF( + queryKdrq != null, + p => + p.Kdrq + <= new DateTime( + endKdrq.ToDate().Year, + endKdrq.ToDate().Month, + endKdrq.ToDate().Day, + 23, + 59, + 59 + ) + ) .WhereIF(!string.IsNullOrEmpty(input.gjlx), p => p.Gjlx.Equals(input.gjlx)) .WhereIF(!string.IsNullOrEmpty(input.hgjg), p => p.Hgjg.Equals(input.hgjg)) .WhereIF(!string.IsNullOrEmpty(input.zdyj), p => p.Zdyj.Equals(input.zdyj)) @@ -201,11 +229,20 @@ namespace NCC.Extend.LqKdKdjlb .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz)) .WhereIF(!string.IsNullOrEmpty(input.kdhy), p => p.Kdhy.Equals(input.kdhy)) .WhereIF(!string.IsNullOrEmpty(input.kdhyc), p => p.Kdhyc.Contains(input.kdhyc)) - .WhereIF(!string.IsNullOrEmpty(input.kdhysjh), p => p.Kdhysjh.Contains(input.kdhysjh)) + .WhereIF( + !string.IsNullOrEmpty(input.kdhysjh), + p => p.Kdhysjh.Contains(input.kdhysjh) + ) .WhereIF(!string.IsNullOrEmpty(input.jksyj), p => p.Jksyj.Contains(input.jksyj)) - .WhereIF(!string.IsNullOrEmpty(input.kjblsyj), p => p.Kjblsyj.Contains(input.kjblsyj)) + .WhereIF( + !string.IsNullOrEmpty(input.kjblsyj), + p => p.Kjblsyj.Contains(input.kjblsyj) + ) .WhereIF(!string.IsNullOrEmpty(input.pxxx), p => p.Pxxx.Contains(input.pxxx)) - .WhereIF(!string.IsNullOrEmpty(input.F_FIleUrl), p => p.F_FIleUrl.Contains(input.F_FIleUrl)) + .WhereIF( + !string.IsNullOrEmpty(input.F_FIleUrl), + p => p.F_FIleUrl.Contains(input.F_FIleUrl) + ) .Select(it => new LqKdKdjlbListOutput { id = it.Id, @@ -234,7 +271,10 @@ namespace NCC.Extend.LqKdKdjlb kjblsyj = it.Kjblsyj, pxxx = it.Pxxx, F_FIleUrl = it.F_FIleUrl, - }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(data); } #endregion @@ -257,7 +297,9 @@ namespace NCC.Extend.LqKdKdjlb _db.BeginTran(); //新增开单记录表记录 entity.CreateUser = userInfo.userId; - var newEntity = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteReturnEntityAsync(); + var newEntity = await _db.Insertable(entity) + .IgnoreColumns(ignoreNullColumn: true) + .ExecuteReturnEntityAsync(); //循环品相信息 // 收集所有需要插入的实体,然后批量插入 var allPxmxEntities = new List(); @@ -283,43 +325,47 @@ namespace NCC.Extend.LqKdKdjlb SourceType = item.sourceType, }; allPxmxEntities.Add(lqKdPxmxEntity); - + // 收集该品项关联的健康师业绩 if (item.lqKdJksyjList != null && item.lqKdJksyjList.Any()) { foreach (var ijks_tem in item.lqKdJksyjList) { - allJksyjEntities.Add(new LqKdJksyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Glkdbh = newEntity.Id, - Jks = ijks_tem.jks, - Jksxm = ijks_tem.jksxm, - Jkszh = ijks_tem.jkszh, - Jksyj = ijks_tem.jksyj, - Yjsj = DateTime.Now, - Jsj_id = ijks_tem.jsj_id, - Kdpxid = lqKdPxmxEntity.Id, - }); + allJksyjEntities.Add( + new LqKdJksyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Glkdbh = newEntity.Id, + Jks = ijks_tem.jks, + Jksxm = ijks_tem.jksxm, + Jkszh = ijks_tem.jkszh, + Jksyj = ijks_tem.jksyj, + Yjsj = DateTime.Now, + Jsj_id = ijks_tem.jsj_id, + Kdpxid = lqKdPxmxEntity.Id, + } + ); } } - + // 收集该品项关联的科技部老师业绩 if (item.lqKdKjbsyjList != null && item.lqKdKjbsyjList.Any()) { foreach (var ikjbs_tem in item.lqKdKjbsyjList) { - allKjbsyjEntities.Add(new LqKdKjbsyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Glkdbh = newEntity.Id, - Kjbls = ikjbs_tem.kjbls, - Kjblsxm = ikjbs_tem.kjblsxm, - Kjblszh = ikjbs_tem.kjblszh, - Kjblsyj = ikjbs_tem.kjblsyj, - Yjsj = DateTime.Now, - Kdpxid = lqKdPxmxEntity.Id, - }); + allKjbsyjEntities.Add( + new LqKdKjbsyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Glkdbh = newEntity.Id, + Kjbls = ikjbs_tem.kjbls, + Kjblsxm = ikjbs_tem.kjblsxm, + Kjblszh = ikjbs_tem.kjblszh, + Kjblsyj = ikjbs_tem.kjblsyj, + Yjsj = DateTime.Now, + Kdpxid = lqKdPxmxEntity.Id, + } + ); } } } @@ -348,14 +394,18 @@ namespace NCC.Extend.LqKdKdjlb var entityInfo = await GetInfo(newEntity.Id); if (entityInfo != null) { - var orderRecordString = _stringGenerator.GenerateOrderRecordString(entityInfo); + var orderRecordString = _stringGenerator.GenerateOrderRecordString( + entityInfo + ); Console.WriteLine("开单记录字符串生成成功:"); Console.WriteLine(orderRecordString); // 发送到企业微信群 try { - var sendResult = await _weChatBotService.SendOrderRecordMessage(orderRecordString); + var sendResult = await _weChatBotService.SendOrderRecordMessage( + orderRecordString + ); if (sendResult) { Console.WriteLine("开单记录已成功发送到企业微信群"); @@ -390,23 +440,48 @@ namespace NCC.Extend.LqKdKdjlb #region 获取开单记录表无分页列表 /// - /// 获取开单记录表无分页列表 - /// - /// 请求参数 - /// + /// 获取开单记录表无分页列表 + /// + /// 请求参数 + /// [NonAction] public async Task GetNoPagingList([FromQuery] LqKdKdjlbListQueryInput input) { var sidx = input.sidx == null ? "id" : input.sidx; - List queryKdrq = input.kdrq != null ? input.kdrq.Split(',').ToObeject>() : null; + List queryKdrq = + input.kdrq != null ? input.kdrq.Split(',').ToObeject>() : null; DateTime? startKdrq = queryKdrq != null ? Ext.GetDateTime(queryKdrq.First()) : null; DateTime? endKdrq = queryKdrq != null ? Ext.GetDateTime(queryKdrq.Last()) : null; var data = await _db.Queryable() .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) .WhereIF(!string.IsNullOrEmpty(input.djmd), p => p.Djmd.Equals(input.djmd)) .WhereIF(!string.IsNullOrEmpty(input.jsj), p => p.Jsj.Equals(input.jsj)) - .WhereIF(queryKdrq != null, p => p.Kdrq >= new DateTime(startKdrq.ToDate().Year, startKdrq.ToDate().Month, startKdrq.ToDate().Day, 0, 0, 0)) - .WhereIF(queryKdrq != null, p => p.Kdrq <= new DateTime(endKdrq.ToDate().Year, endKdrq.ToDate().Month, endKdrq.ToDate().Day, 23, 59, 59)) + .WhereIF( + queryKdrq != null, + p => + p.Kdrq + >= new DateTime( + startKdrq.ToDate().Year, + startKdrq.ToDate().Month, + startKdrq.ToDate().Day, + 0, + 0, + 0 + ) + ) + .WhereIF( + queryKdrq != null, + p => + p.Kdrq + <= new DateTime( + endKdrq.ToDate().Year, + endKdrq.ToDate().Month, + endKdrq.ToDate().Day, + 23, + 59, + 59 + ) + ) .WhereIF(!string.IsNullOrEmpty(input.gjlx), p => p.Gjlx.Equals(input.gjlx)) .WhereIF(!string.IsNullOrEmpty(input.hgjg), p => p.Hgjg.Equals(input.hgjg)) .WhereIF(!string.IsNullOrEmpty(input.zdyj), p => p.Zdyj.Equals(input.zdyj)) @@ -424,11 +499,20 @@ namespace NCC.Extend.LqKdKdjlb .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz)) .WhereIF(!string.IsNullOrEmpty(input.kdhy), p => p.Kdhy.Equals(input.kdhy)) .WhereIF(!string.IsNullOrEmpty(input.kdhyc), p => p.Kdhyc.Contains(input.kdhyc)) - .WhereIF(!string.IsNullOrEmpty(input.kdhysjh), p => p.Kdhysjh.Contains(input.kdhysjh)) + .WhereIF( + !string.IsNullOrEmpty(input.kdhysjh), + p => p.Kdhysjh.Contains(input.kdhysjh) + ) .WhereIF(!string.IsNullOrEmpty(input.jksyj), p => p.Jksyj.Contains(input.jksyj)) - .WhereIF(!string.IsNullOrEmpty(input.kjblsyj), p => p.Kjblsyj.Contains(input.kjblsyj)) + .WhereIF( + !string.IsNullOrEmpty(input.kjblsyj), + p => p.Kjblsyj.Contains(input.kjblsyj) + ) .WhereIF(!string.IsNullOrEmpty(input.pxxx), p => p.Pxxx.Contains(input.pxxx)) - .WhereIF(!string.IsNullOrEmpty(input.F_FIleUrl), p => p.F_FIleUrl.Contains(input.F_FIleUrl)) + .WhereIF( + !string.IsNullOrEmpty(input.F_FIleUrl), + p => p.F_FIleUrl.Contains(input.F_FIleUrl) + ) .Select(it => new LqKdKdjlbListOutput { id = it.Id, @@ -457,17 +541,20 @@ namespace NCC.Extend.LqKdKdjlb kjblsyj = it.Kjblsyj, pxxx = it.Pxxx, F_FIleUrl = it.F_FIleUrl, - }).MergeTable().OrderBy(sidx + " " + input.sort).ToListAsync(); + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToListAsync(); return data; } #endregion #region 导出开单记录表 /// - /// 导出开单记录表 - /// - /// 请求参数 - /// + /// 导出开单记录表 + /// + /// 请求参数 + /// [HttpGet("Actions/Export")] public async Task Export([FromQuery] LqKdKdjlbListQueryInput input) { @@ -482,7 +569,8 @@ namespace NCC.Extend.LqKdKdjlb { exportData = await this.GetNoPagingList(input); } - List paramList = "[{\"value\":\"开单编号\",\"field\":\"id\"},{\"value\":\"开单会员\",\"field\":\"kdhy\"},{\"value\":\"开单会员名称\",\"field\":\"kdhyc\"},{\"value\":\"会员手机号\",\"field\":\"kdhysjh\"},{\"value\":\"单据门店\",\"field\":\"djmd\"},{\"value\":\"金三角\",\"field\":\"jsj\"},{\"value\":\"开单日期\",\"field\":\"kdrq\"},{\"value\":\"顾客类型\",\"field\":\"gjlx\"},{\"value\":\"合作机构\",\"field\":\"hgjg\"},{\"value\":\"整单业绩\",\"field\":\"zdyj\"},{\"value\":\"实付业绩\",\"field\":\"sfyj\"},{\"value\":\"欠款\",\"field\":\"qk\"},{\"value\":\"储扣方式\",\"field\":\"ckfs\"},{\"value\":\"储扣明细\",\"field\":\"ckmx\"},{\"value\":\"付款方式\",\"field\":\"fkfs\"},{\"value\":\"付款医院\",\"field\":\"fkyy\"},{\"value\":\"付款判断\",\"field\":\"fkpd\"},{\"value\":\"客户来源\",\"field\":\"khly\"},{\"value\":\"推荐人\",\"field\":\"tjr\"},{\"value\":\"是否首开订单\",\"field\":\"sfskdd\"},{\"value\":\"简介\",\"field\":\"jj\"},{\"value\":\"备注\",\"field\":\"bz\"},{\"value\":\"健康师业绩\",\"field\":\"jksyj\"},{\"value\":\"科技部老师业绩\",\"field\":\"kjblsyj\"},{\"value\":\"品项信息\",\"field\":\"pxxx\"},{\"value\":\"方案其他\",\"field\":\"F_FIleUrl\"},]".ToList(); + List paramList = + "[{\"value\":\"开单编号\",\"field\":\"id\"},{\"value\":\"开单会员\",\"field\":\"kdhy\"},{\"value\":\"开单会员名称\",\"field\":\"kdhyc\"},{\"value\":\"会员手机号\",\"field\":\"kdhysjh\"},{\"value\":\"单据门店\",\"field\":\"djmd\"},{\"value\":\"金三角\",\"field\":\"jsj\"},{\"value\":\"开单日期\",\"field\":\"kdrq\"},{\"value\":\"顾客类型\",\"field\":\"gjlx\"},{\"value\":\"合作机构\",\"field\":\"hgjg\"},{\"value\":\"整单业绩\",\"field\":\"zdyj\"},{\"value\":\"实付业绩\",\"field\":\"sfyj\"},{\"value\":\"欠款\",\"field\":\"qk\"},{\"value\":\"储扣方式\",\"field\":\"ckfs\"},{\"value\":\"储扣明细\",\"field\":\"ckmx\"},{\"value\":\"付款方式\",\"field\":\"fkfs\"},{\"value\":\"付款医院\",\"field\":\"fkyy\"},{\"value\":\"付款判断\",\"field\":\"fkpd\"},{\"value\":\"客户来源\",\"field\":\"khly\"},{\"value\":\"推荐人\",\"field\":\"tjr\"},{\"value\":\"是否首开订单\",\"field\":\"sfskdd\"},{\"value\":\"简介\",\"field\":\"jj\"},{\"value\":\"备注\",\"field\":\"bz\"},{\"value\":\"健康师业绩\",\"field\":\"jksyj\"},{\"value\":\"科技部老师业绩\",\"field\":\"kjblsyj\"},{\"value\":\"品项信息\",\"field\":\"pxxx\"},{\"value\":\"方案其他\",\"field\":\"F_FIleUrl\"},]".ToList(); ExcelConfig excelconfig = new ExcelConfig(); excelconfig.FileName = "开单记录表.xls"; excelconfig.HeadFont = "微软雅黑"; @@ -495,7 +583,13 @@ namespace NCC.Extend.LqKdKdjlb var isExist = paramList.Find(p => p.field == item); if (isExist != null) { - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value }); + excelconfig.ColumnModel.Add( + new ExcelColumnModel() + { + Column = isExist.field, + ExcelColumn = isExist.value, + } + ); } } var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName; @@ -504,7 +598,7 @@ namespace NCC.Extend.LqKdKdjlb var output = new { name = excelconfig.FileName, - url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") + url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC"), }; return output; } @@ -527,16 +621,24 @@ namespace NCC.Extend.LqKdKdjlb //开启事务 _db.BeginTran(); //批量删除开单记录表 - await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); + await _db.Deleteable() + .In(d => d.Id, ids) + .ExecuteCommandAsync(); //清空子表数据 - await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); + await _db.Deleteable() + .In(u => u.Glkdbh, ids) + .ExecuteCommandAsync(); //清空子表数据 - await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); + await _db.Deleteable() + .In(u => u.Glkdbh, ids) + .ExecuteCommandAsync(); //清空子表数据 - await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); + await _db.Deleteable() + .In(u => u.Glkdbh, ids) + .ExecuteCommandAsync(); //关闭事务 _db.CommitTran(); } @@ -556,7 +658,7 @@ namespace NCC.Extend.LqKdKdjlb /// /// /// 更新开单记录及其关联的品项明细、健康师业绩、科技部老师业绩信息 - /// + /// /// 示例请求: /// ```json /// { @@ -582,7 +684,7 @@ namespace NCC.Extend.LqKdKdjlb /// ] /// } /// ``` - /// + /// /// 参数说明: /// - id: 开单记录主键ID /// - input: 开单记录更新参数,包含品项明细和业绩信息 @@ -603,12 +705,20 @@ namespace NCC.Extend.LqKdKdjlb _db.BeginTran(); //更新开单记录表记录 - await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + await _db.Updateable(entity) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommandAsync(); //清空原有数据 - await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); - await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); - await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); + await _db.Deleteable() + .Where(u => u.Glkdbh == id) + .ExecuteCommandAsync(); + await _db.Deleteable() + .Where(u => u.Glkdbh == id) + .ExecuteCommandAsync(); + await _db.Deleteable() + .Where(u => u.Glkdbh == id) + .ExecuteCommandAsync(); // 收集所有需要插入的实体,然后批量插入 var allPxmxEntities = new List(); @@ -636,43 +746,47 @@ namespace NCC.Extend.LqKdKdjlb SourceType = item.sourceType, }; allPxmxEntities.Add(lqKdPxmxEntity); - + // 收集该品项关联的健康师业绩 if (item.lqKdJksyjList != null && item.lqKdJksyjList.Any()) { foreach (var ijks_tem in item.lqKdJksyjList) { - allJksyjEntities.Add(new LqKdJksyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Glkdbh = entity.Id, - Jks = ijks_tem.jks, - Jksxm = ijks_tem.jksxm, - Jkszh = ijks_tem.jkszh, - Jksyj = ijks_tem.jksyj, - Yjsj = DateTime.Now, - Jsj_id = ijks_tem.jsj_id, - Kdpxid = lqKdPxmxEntity.Id, - }); + allJksyjEntities.Add( + new LqKdJksyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Glkdbh = entity.Id, + Jks = ijks_tem.jks, + Jksxm = ijks_tem.jksxm, + Jkszh = ijks_tem.jkszh, + Jksyj = ijks_tem.jksyj, + Yjsj = DateTime.Now, + Jsj_id = ijks_tem.jsj_id, + Kdpxid = lqKdPxmxEntity.Id, + } + ); } } - + // 收集该品项关联的科技部老师业绩 if (item.lqKdKjbsyjList != null && item.lqKdKjbsyjList.Any()) { foreach (var ikjbs_tem in item.lqKdKjbsyjList) { - allKjbsyjEntities.Add(new LqKdKjbsyjEntity - { - Id = YitIdHelper.NextId().ToString(), - Glkdbh = entity.Id, - Kjbls = ikjbs_tem.kjbls, - Kjblsxm = ikjbs_tem.kjblsxm, - Kjblszh = ikjbs_tem.kjblszh, - Kjblsyj = ikjbs_tem.kjblsyj, - Yjsj = DateTime.Now, - Kdpxid = lqKdPxmxEntity.Id, - }); + allKjbsyjEntities.Add( + new LqKdKjbsyjEntity + { + Id = YitIdHelper.NextId().ToString(), + Glkdbh = entity.Id, + Kjbls = ikjbs_tem.kjbls, + Kjblsxm = ikjbs_tem.kjblsxm, + Kjblszh = ikjbs_tem.kjblszh, + Kjblsyj = ikjbs_tem.kjblsyj, + Yjsj = DateTime.Now, + Kdpxid = lqKdPxmxEntity.Id, + } + ); } } } @@ -721,16 +835,24 @@ namespace NCC.Extend.LqKdKdjlb _db.BeginTran(); //删除开单记录表记录 - await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); + await _db.Deleteable() + .Where(d => d.Id == id) + .ExecuteCommandAsync(); //清空子表数据 - await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); + await _db.Deleteable() + .Where(u => u.Glkdbh == id) + .ExecuteCommandAsync(); //清空子表数据 - await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); + await _db.Deleteable() + .Where(u => u.Glkdbh == id) + .ExecuteCommandAsync(); //清空子表数据 - await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); + await _db.Deleteable() + .Where(u => u.Glkdbh == id) + .ExecuteCommandAsync(); //关闭事务 _db.CommitTran(); diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqLssjService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqLssjService.cs index 7e54577..b9baed1 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqLssjService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqLssjService.cs @@ -1,34 +1,34 @@ -using NCC.Common.Core.Manager; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NCC.ClayObject; +using NCC.Common.Configuration; +using NCC.Common.Core.Manager; using NCC.Common.Enum; using NCC.Common.Extension; using NCC.Common.Filter; +using NCC.Common.Helper; +using NCC.Common.Model.NPOI; +using NCC.DataEncryption; using NCC.Dependency; using NCC.DynamicApiController; -using NCC.FriendlyException; +using NCC.Extend.Entitys.Dto.LqLssj; +using NCC.Extend.Entitys.lq_lssj; using NCC.Extend.Interfaces.LqLssj; -using Mapster; -using Microsoft.AspNetCore.Mvc; +using NCC.FriendlyException; +using NCC.JsonSerialization; using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using NCC.Extend.Entitys.lq_lssj; -using NCC.Extend.Entitys.Dto.LqLssj; using Yitter.IdGenerator; -using NCC.Common.Helper; -using NCC.JsonSerialization; -using NCC.Common.Model.NPOI; -using NCC.Common.Configuration; -using NCC.DataEncryption; -using NCC.ClayObject; namespace NCC.Extend.LqLssj { /// /// 历史数据服务 /// - [ApiDescriptionSettings(Tag = "Extend",Name = "LqLssj", Order = 200)] + [ApiDescriptionSettings(Tag = "Extend", Name = "LqLssj", Order = 200)] [Route("api/Extend/[controller]")] public class LqLssjService : ILqLssjService, IDynamicApiController, ITransient { @@ -41,9 +41,10 @@ namespace NCC.Extend.LqLssj /// public LqLssjService( ISqlSugarRepository lqLssjRepository, - IUserManager userManager) + IUserManager userManager + ) { - _lqLssjRepository = lqLssjRepository; + _lqLssjRepository = lqLssjRepository; _db = _lqLssjRepository.Context; _userManager = userManager; } @@ -62,10 +63,10 @@ namespace NCC.Extend.LqLssj } /// - /// 获取历史数据列表 - /// - /// 请求参数 - /// + /// 获取历史数据列表 + /// + /// 请求参数 + /// [HttpGet("")] public async Task GetList([FromQuery] LqLssjListQueryInput input) { @@ -81,20 +82,23 @@ namespace NCC.Extend.LqLssj .WhereIF(!string.IsNullOrEmpty(input.rts), p => p.Rts.Equals(input.rts)) .WhereIF(!string.IsNullOrEmpty(input.rcs), p => p.Rcs.Equals(input.rcs)) .WhereIF(!string.IsNullOrEmpty(input.xms), p => p.Xms.Equals(input.xms)) - .Select(it=> new LqLssjListOutput + .Select(it => new LqLssjListOutput { id = it.Id, - syb=it.Syb, - md=it.Md, - yf=it.Yf, - nf=it.Nf, - zyj=it.Zyj, - zxh=it.Zxh, - rts=it.Rts, - rcs=it.Rcs, - xms=it.Xms, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); - return PageResult.SqlSugarPageResult(data); + syb = it.Syb, + md = it.Md, + yf = it.Yf, + nf = it.Nf, + zyj = it.Zyj, + zxh = it.Zxh, + rts = it.Rts, + rcs = it.Rcs, + xms = it.Xms, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(data); } /// @@ -108,15 +112,18 @@ namespace NCC.Extend.LqLssj var userInfo = await _userManager.GetUserInfo(); var entity = input.Adapt(); entity.Id = YitIdHelper.NextId().ToString(); - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); + var isOk = await _db.Insertable(entity) + .IgnoreColumns(ignoreNullColumn: true) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1000); } /// - /// 获取历史数据无分页列表 - /// - /// 请求参数 - /// + /// 获取历史数据无分页列表 + /// + /// 请求参数 + /// [NonAction] public async Task GetNoPagingList([FromQuery] LqLssjListQueryInput input) { @@ -132,27 +139,30 @@ namespace NCC.Extend.LqLssj .WhereIF(!string.IsNullOrEmpty(input.rts), p => p.Rts.Equals(input.rts)) .WhereIF(!string.IsNullOrEmpty(input.rcs), p => p.Rcs.Equals(input.rcs)) .WhereIF(!string.IsNullOrEmpty(input.xms), p => p.Xms.Equals(input.xms)) - .Select(it=> new LqLssjListOutput + .Select(it => new LqLssjListOutput { id = it.Id, - syb=it.Syb, - md=it.Md, - yf=it.Yf, - nf=it.Nf, - zyj=it.Zyj, - zxh=it.Zxh, - rts=it.Rts, - rcs=it.Rcs, - xms=it.Xms, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); - return data; + syb = it.Syb, + md = it.Md, + yf = it.Yf, + nf = it.Nf, + zyj = it.Zyj, + zxh = it.Zxh, + rts = it.Rts, + rcs = it.Rcs, + xms = it.Xms, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToListAsync(); + return data; } /// - /// 导出历史数据 - /// - /// 请求参数 - /// + /// 导出历史数据 + /// + /// 请求参数 + /// [HttpGet("Actions/Export")] public async Task Export([FromQuery] LqLssjListQueryInput input) { @@ -167,7 +177,8 @@ namespace NCC.Extend.LqLssj { exportData = await this.GetNoPagingList(input); } - List paramList = "[{\"value\":\"数据编号\",\"field\":\"id\"},{\"value\":\"事业部\",\"field\":\"syb\"},{\"value\":\"门店\",\"field\":\"md\"},{\"value\":\"月份\",\"field\":\"yf\"},{\"value\":\"年份\",\"field\":\"nf\"},{\"value\":\"总业绩\",\"field\":\"zyj\"},{\"value\":\"总消耗\",\"field\":\"zxh\"},{\"value\":\"人头数\",\"field\":\"rts\"},{\"value\":\"人次数\",\"field\":\"rcs\"},{\"value\":\"项目数\",\"field\":\"xms\"},]".ToList(); + List paramList = + "[{\"value\":\"数据编号\",\"field\":\"id\"},{\"value\":\"事业部\",\"field\":\"syb\"},{\"value\":\"门店\",\"field\":\"md\"},{\"value\":\"月份\",\"field\":\"yf\"},{\"value\":\"年份\",\"field\":\"nf\"},{\"value\":\"总业绩\",\"field\":\"zyj\"},{\"value\":\"总消耗\",\"field\":\"zxh\"},{\"value\":\"人头数\",\"field\":\"rts\"},{\"value\":\"人次数\",\"field\":\"rcs\"},{\"value\":\"项目数\",\"field\":\"xms\"},]".ToList(); ExcelConfig excelconfig = new ExcelConfig(); excelconfig.FileName = "历史数据.xls"; excelconfig.HeadFont = "微软雅黑"; @@ -180,7 +191,13 @@ namespace NCC.Extend.LqLssj var isExist = paramList.Find(p => p.field == item); if (isExist != null) { - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value }); + excelconfig.ColumnModel.Add( + new ExcelColumnModel() + { + Column = isExist.field, + ExcelColumn = isExist.value, + } + ); } } var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName; @@ -189,7 +206,7 @@ namespace NCC.Extend.LqLssj var output = new { name = excelconfig.FileName, - url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") + url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC"), }; return output; } @@ -210,7 +227,7 @@ namespace NCC.Extend.LqLssj //开启事务 _db.BeginTran(); //批量删除历史数据 - await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync(); + await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); //关闭事务 _db.CommitTran(); } @@ -233,8 +250,11 @@ namespace NCC.Extend.LqLssj public async Task Update(string id, [FromBody] LqLssjUpInput input) { var entity = input.Adapt(); - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); + var isOk = await _db.Updateable(entity) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1001); } /// @@ -246,8 +266,11 @@ namespace NCC.Extend.LqLssj { var entity = await _db.Queryable().FirstAsync(p => p.Id == id); _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); - var isOk = await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002); + var isOk = await _db.Deleteable() + .Where(d => d.Id == id) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1002); } } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqMdXdbhsjService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqMdXdbhsjService.cs index 2b583fe..6843d46 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqMdXdbhsjService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqMdXdbhsjService.cs @@ -1,27 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NCC.ClayObject; +using NCC.Common.Configuration; using NCC.Common.Core.Manager; using NCC.Common.Enum; using NCC.Common.Extension; using NCC.Common.Filter; +using NCC.Common.Helper; +using NCC.Common.Model.NPOI; +using NCC.DataEncryption; using NCC.Dependency; using NCC.DynamicApiController; -using NCC.FriendlyException; +using NCC.Extend.Entitys.Dto.LqMdXdbhsj; +using NCC.Extend.Entitys.lq_md_xdbhsj; using NCC.Extend.Interfaces.LqMdXdbhsj; -using Mapster; -using Microsoft.AspNetCore.Mvc; +using NCC.FriendlyException; +using NCC.JsonSerialization; using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using NCC.Extend.Entitys.lq_md_xdbhsj; -using NCC.Extend.Entitys.Dto.LqMdXdbhsj; using Yitter.IdGenerator; -using NCC.Common.Helper; -using NCC.JsonSerialization; -using NCC.Common.Model.NPOI; -using NCC.Common.Configuration; -using NCC.DataEncryption; -using NCC.ClayObject; namespace NCC.Extend.LqMdXdbhsj { @@ -41,7 +41,8 @@ namespace NCC.Extend.LqMdXdbhsj /// public LqMdXdbhsjService( ISqlSugarRepository lqMdXdbhsjRepository, - IUserManager userManager) + IUserManager userManager + ) { _lqMdXdbhsjRepository = lqMdXdbhsjRepository; _db = _lqMdXdbhsjRepository.Context; @@ -83,8 +84,11 @@ namespace NCC.Extend.LqMdXdbhsj bhjssj = it.Bhjssj, sm = it.Sm, cjsj = it.Cjsj, - sfqy = it.Sfqy - }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); + sfqy = it.Sfqy, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToPagedListAsync(input.currentPage, input.pageSize); return PageResult.SqlSugarPageResult(data); } @@ -100,28 +104,33 @@ namespace NCC.Extend.LqMdXdbhsj var entity = input.Adapt(); entity.Id = YitIdHelper.NextId().ToString(); entity.Cjsj = DateTime.Now; - + // 验证时间逻辑 if (entity.Bhkssj >= entity.Bhjssj) { throw NCCException.Oh(ErrorCode.COM1000, "保护开始时间必须早于保护结束时间"); } - + // 检查是否存在重叠的保护时间 var exists = await _db.Queryable() .Where(p => p.Mdid == entity.Mdid && p.Sfqy == 1) - .Where(p => (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) || - (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) || - (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj)) + .Where(p => + (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) + || (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) + || (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj) + ) .AnyAsync(); - + if (exists) { throw NCCException.Oh(ErrorCode.COM1000, "该门店在指定时间段内已存在保护时间设置"); } - - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); + + var isOk = await _db.Insertable(entity) + .IgnoreColumns(ignoreNullColumn: true) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1000); } /// @@ -135,28 +144,33 @@ namespace NCC.Extend.LqMdXdbhsj { var entity = input.Adapt(); entity.Id = id; - + // 验证时间逻辑 if (entity.Bhkssj >= entity.Bhjssj) { throw NCCException.Oh(ErrorCode.COM1000, "保护开始时间必须早于保护结束时间"); } - + // 检查是否存在重叠的保护时间(排除当前记录) var exists = await _db.Queryable() .Where(p => p.Mdid == entity.Mdid && p.Sfqy == 1 && p.Id != id) - .Where(p => (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) || - (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) || - (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj)) + .Where(p => + (p.Bhkssj <= entity.Bhkssj && p.Bhjssj > entity.Bhkssj) + || (p.Bhkssj < entity.Bhjssj && p.Bhjssj >= entity.Bhjssj) + || (p.Bhkssj >= entity.Bhkssj && p.Bhjssj <= entity.Bhjssj) + ) .AnyAsync(); - + if (exists) { throw NCCException.Oh(ErrorCode.COM1000, "该门店在指定时间段内已存在保护时间设置"); } - - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); + + var isOk = await _db.Updateable(entity) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1001); } /// @@ -168,8 +182,11 @@ namespace NCC.Extend.LqMdXdbhsj { var entity = await _db.Queryable().FirstAsync(p => p.Id == id); _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); - var isOk = await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002); + var isOk = await _db.Deleteable() + .Where(d => d.Id == id) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1002); } /// @@ -181,7 +198,12 @@ namespace NCC.Extend.LqMdXdbhsj { var list = await _db.Queryable() .Where(p => p.Sfqy == 1) - .Select(it => new { id = it.Id, fullName = it.Mdid, enCode = it.Id }) + .Select(it => new + { + id = it.Id, + fullName = it.Mdid, + enCode = it.Id, + }) .ToListAsync(); return new { list = list }; } @@ -199,12 +221,12 @@ namespace NCC.Extend.LqMdXdbhsj .Where(p => p.Mdid == mdid && p.Sfqy == 1) .Where(p => p.Bhkssj <= now && p.Bhjssj >= now) .FirstAsync(); - + if (entity == null) { return new { hasProtection = false, message = "该门店当前无保护时间设置" }; } - + var output = entity.Adapt(); return new { hasProtection = true, data = output }; } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqSkzhService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqSkzhService.cs index 5b32834..8e13f8c 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqSkzhService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqSkzhService.cs @@ -1,34 +1,34 @@ -using NCC.Common.Core.Manager; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NCC.ClayObject; +using NCC.Common.Configuration; +using NCC.Common.Core.Manager; using NCC.Common.Enum; using NCC.Common.Extension; using NCC.Common.Filter; +using NCC.Common.Helper; +using NCC.Common.Model.NPOI; +using NCC.DataEncryption; using NCC.Dependency; using NCC.DynamicApiController; -using NCC.FriendlyException; +using NCC.Extend.Entitys.Dto.LqSkzh; +using NCC.Extend.Entitys.lq_skzh; using NCC.Extend.Interfaces.LqSkzh; -using Mapster; -using Microsoft.AspNetCore.Mvc; +using NCC.FriendlyException; +using NCC.JsonSerialization; using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using NCC.Extend.Entitys.lq_skzh; -using NCC.Extend.Entitys.Dto.LqSkzh; using Yitter.IdGenerator; -using NCC.Common.Helper; -using NCC.JsonSerialization; -using NCC.Common.Model.NPOI; -using NCC.Common.Configuration; -using NCC.DataEncryption; -using NCC.ClayObject; namespace NCC.Extend.LqSkzh { /// /// 收款账户服务 /// - [ApiDescriptionSettings(Tag = "Extend",Name = "LqSkzh", Order = 200)] + [ApiDescriptionSettings(Tag = "Extend", Name = "LqSkzh", Order = 200)] [Route("api/Extend/[controller]")] public class LqSkzhService : ILqSkzhService, IDynamicApiController, ITransient { @@ -41,9 +41,10 @@ namespace NCC.Extend.LqSkzh /// public LqSkzhService( ISqlSugarRepository lqSkzhRepository, - IUserManager userManager) + IUserManager userManager + ) { - _lqSkzhRepository = lqSkzhRepository; + _lqSkzhRepository = lqSkzhRepository; _db = _lqSkzhRepository.Context; _userManager = userManager; } @@ -62,10 +63,10 @@ namespace NCC.Extend.LqSkzh } /// - /// 获取收款账户列表 - /// - /// 请求参数 - /// + /// 获取收款账户列表 + /// + /// 请求参数 + /// [HttpGet("")] public async Task GetList([FromQuery] LqSkzhListQueryInput input) { @@ -74,13 +75,16 @@ namespace NCC.Extend.LqSkzh .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) .WhereIF(!string.IsNullOrEmpty(input.sktj), p => p.Sktj.Contains(input.sktj)) .WhereIF(!string.IsNullOrEmpty(input.skzh), p => p.Skzh.Contains(input.skzh)) - .Select(it=> new LqSkzhListOutput + .Select(it => new LqSkzhListOutput { id = it.Id, - sktj=it.Sktj, - skzh=it.Skzh, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); - return PageResult.SqlSugarPageResult(data); + sktj = it.Sktj, + skzh = it.Skzh, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(data); } /// @@ -94,15 +98,18 @@ namespace NCC.Extend.LqSkzh var userInfo = await _userManager.GetUserInfo(); var entity = input.Adapt(); entity.Id = YitIdHelper.NextId().ToString(); - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); + var isOk = await _db.Insertable(entity) + .IgnoreColumns(ignoreNullColumn: true) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1000); } /// - /// 获取收款账户无分页列表 - /// - /// 请求参数 - /// + /// 获取收款账户无分页列表 + /// + /// 请求参数 + /// [NonAction] public async Task GetNoPagingList([FromQuery] LqSkzhListQueryInput input) { @@ -111,20 +118,23 @@ namespace NCC.Extend.LqSkzh .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) .WhereIF(!string.IsNullOrEmpty(input.sktj), p => p.Sktj.Contains(input.sktj)) .WhereIF(!string.IsNullOrEmpty(input.skzh), p => p.Skzh.Contains(input.skzh)) - .Select(it=> new LqSkzhListOutput + .Select(it => new LqSkzhListOutput { id = it.Id, - sktj=it.Sktj, - skzh=it.Skzh, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); - return data; + sktj = it.Sktj, + skzh = it.Skzh, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToListAsync(); + return data; } /// - /// 导出收款账户 - /// - /// 请求参数 - /// + /// 导出收款账户 + /// + /// 请求参数 + /// [HttpGet("Actions/Export")] public async Task Export([FromQuery] LqSkzhListQueryInput input) { @@ -139,7 +149,8 @@ namespace NCC.Extend.LqSkzh { exportData = await this.GetNoPagingList(input); } - List paramList = "[{\"value\":\"收款途径编号\",\"field\":\"id\"},{\"value\":\"收款途径\",\"field\":\"sktj\"},{\"value\":\"收款账号\",\"field\":\"skzh\"},]".ToList(); + List paramList = + "[{\"value\":\"收款途径编号\",\"field\":\"id\"},{\"value\":\"收款途径\",\"field\":\"sktj\"},{\"value\":\"收款账号\",\"field\":\"skzh\"},]".ToList(); ExcelConfig excelconfig = new ExcelConfig(); excelconfig.FileName = "收款账户.xls"; excelconfig.HeadFont = "微软雅黑"; @@ -152,7 +163,13 @@ namespace NCC.Extend.LqSkzh var isExist = paramList.Find(p => p.field == item); if (isExist != null) { - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value }); + excelconfig.ColumnModel.Add( + new ExcelColumnModel() + { + Column = isExist.field, + ExcelColumn = isExist.value, + } + ); } } var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName; @@ -161,7 +178,7 @@ namespace NCC.Extend.LqSkzh var output = new { name = excelconfig.FileName, - url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") + url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC"), }; return output; } @@ -182,7 +199,7 @@ namespace NCC.Extend.LqSkzh //开启事务 _db.BeginTran(); //批量删除收款账户 - await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync(); + await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); //关闭事务 _db.CommitTran(); } @@ -205,8 +222,11 @@ namespace NCC.Extend.LqSkzh public async Task Update(string id, [FromBody] LqSkzhUpInput input) { var entity = input.Adapt(); - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); + var isOk = await _db.Updateable(entity) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1001); } /// @@ -218,8 +238,11 @@ namespace NCC.Extend.LqSkzh { var entity = await _db.Queryable().FirstAsync(p => p.Id == id); _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); - var isOk = await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002); + var isOk = await _db.Deleteable() + .Where(d => d.Id == id) + .ExecuteCommandAsync(); + if (!(isOk > 0)) + throw NCCException.Oh(ErrorCode.COM1002); } } } diff --git a/创建事业部业绩统计流水表视图.sql b/创建事业部业绩统计流水表视图.sql new file mode 100644 index 0000000..db0e47a --- /dev/null +++ b/创建事业部业绩统计流水表视图.sql @@ -0,0 +1,58 @@ +-- 创建事业部业绩统计流水表视图 +-- 统计各个事业部的目标业绩、完成业绩、完成率 + +DROP VIEW IF EXISTS `v_department_performance_flow`; + +CREATE VIEW `v_department_performance_flow` AS +SELECT + o.F_Id AS department_id, -- 部门ID + o.F_FullName AS department_name, -- 部门名称 + o.F_ParentId AS parent_id, -- 上级部门ID + parent.F_FullName AS parent_name, -- 上级部门名称 + o.F_Category AS department_category, -- 部门分类 + kd.F_Id AS order_id, -- 开单ID + kd.kdrq AS order_date, -- 开单时间 + kd.djmd AS store_id, -- 开单门店ID + m.mdbm AS store_code, -- 门店编号 + m.dm AS store_name, -- 门店名称 + m.xsyj AS target_amount, -- 目标业绩(门店生命线) + kd.zdyj AS completed_amount, -- 完成业绩(整单业绩) + kd.sfyj AS actual_amount, -- 实付业绩 + kd.qk AS debt_amount, -- 欠款 + kd.jsj AS golden_triangle, -- 金三角 + kd.kdhy AS member_id, -- 开单会员ID + kd.kdhyc AS member_name, -- 开单会员名称 + kd.kdhysjh AS member_phone, -- 开单会员手机号 + kd.gjlx AS customer_type, -- 顾客类型 + kd.hgjg AS partner_institution, -- 合作机构 + kd.fkfs AS payment_method, -- 付款方式 + kd.khly AS customer_source, -- 客户来源 + kd.tjr AS referrer, -- 推荐人 + kd.sfskdd AS is_first_order, -- 是否首开订单 + kd.jj AS description, -- 简介 + kd.bz AS remarks, -- 备注 + kd.F_CreateUser AS create_user, -- 开单用户 + kd.F_FIleUrl AS file_url, -- 方案其他 + -- 计算完成率 + CASE + WHEN m.xsyj > 0 THEN ROUND((kd.zdyj / m.xsyj) * 100, 2) + ELSE 0 + END AS completion_rate, -- 完成率(%) + -- 时间维度字段 + YEAR(kd.kdrq) AS order_year, -- 开单年份 + MONTH(kd.kdrq) AS order_month, -- 开单月份 + QUARTER(kd.kdrq) AS order_quarter, -- 开单季度 + DATE(kd.kdrq) AS order_date_only, -- 开单日期(不含时间) + -- 使用开单日期作为创建时间 + kd.kdrq AS create_time, -- 创建时间(使用开单日期) + kd.kdrq AS modify_time -- 修改时间(使用开单日期) +FROM base_organize o +LEFT JOIN base_organize parent ON o.F_ParentId = parent.F_Id +LEFT JOIN lq_mdxx m ON m.syb = o.F_Id +LEFT JOIN lq_kd_kdjlb kd ON kd.djmd = m.F_Id +WHERE (o.F_DeleteMark IS NULL OR o.F_DeleteMark != 1) + AND o.F_Category = 'department' -- 只统计部门类型 + AND kd.kdrq IS NOT NULL; -- 只包含有开单日期的记录 + +-- 添加视图注释 +ALTER VIEW `v_department_performance_flow` COMMENT = '事业部业绩统计流水表视图 - 统计各事业部目标业绩、完成业绩、完成率等详细信息'; diff --git a/参考资料/.DS_Store b/参考资料/.DS_Store index 8372e1a..c38ef84 100644 --- a/参考资料/.DS_Store +++ b/参考资料/.DS_Store