소스 검색

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

libin 1 개월 전
부모
커밋
0544348797

+ 14 - 5
src/Hotline.Api/Controllers/OrderController.cs

@@ -2606,7 +2606,9 @@ public class OrderController : BaseController
         {
             DelayState = EnumExts.GetDescriptions<EDelayState>(),
             QueryDelayState = EnumExts.GetDescriptions<EQueryDelayState>(),
-            TimeType = EnumExts.GetDescriptions<ETimeType>()
+            TimeType = EnumExts.GetDescriptions<ETimeType>(),
+            AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType),
+            ChannelOptions = _sysDicDataCacheManager.GetSysDicDataCache(TimeLimitBaseDataConsts.SourceChannel),
         };
         return rsp;
     }
@@ -4043,8 +4045,8 @@ public class OrderController : BaseController
             .Includes(d => d.OrderScreens)
             .Includes(d => d.OrderTerminates)
             .Where(d => d.Contact == dto.PhoneNo)
-            .WhereIF(_sessionContext.OrgIsCenter == false && _appOptions.Value.IsYiBin == true, d => d.IsSecret == false)
-            .WhereIF(!string.IsNullOrEmpty(dto.OrderId), d => d.Id != dto.OrderId)
+            .WhereIF(_sessionContext.OrgIsCenter == false && (_appOptions.Value.IsYiBin == true  || _appOptions.Value.IsLuZhou == true ), d => d.IsSecret == false)
+            .WhereIF(!string.IsNullOrEmpty(dto.OrderId) && _appOptions.Value.IsLuZhou == false, d => d.Id != dto.OrderId)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
             .Select(d => new OrderHistoryOutDto
             {
@@ -4544,8 +4546,15 @@ public class OrderController : BaseController
                 order.OrderTagCode = String.Join(", ", dicData);
             }
         }
+        if (_appOptions.Value.IsLuZhou)
+        {
+			//期满时间
+			var expiredTimeConfig =
+			   await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
+			_mapper.Map(expiredTimeConfig, order);
+		}
 
-        await _orderDomainService.AddAsync(order, true, HttpContext.RequestAborted);
+		await _orderDomainService.AddAsync(order, true, HttpContext.RequestAborted);
 
         if (_systemSettingCacheManager.Snapshot && dto.IndustryId.NotNullOrEmpty() && dto.IndustryName.NotNullOrEmpty())
         {
@@ -7638,7 +7647,7 @@ public class OrderController : BaseController
             }
         }
 
-        if (_appOptions.Value.IsYiBin)
+        if (_appOptions.Value.IsYiBin && _appOptions.Value.IsLuZhou)
         {
             if (order.FileOrgIsCenter.Value)
             {

+ 11 - 0
src/Hotline.Application/OrderApp/OrderApplication.cs

@@ -5590,6 +5590,17 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.Order.OrgLevelOneName == dto.OrgLevelOneName) //一级部门
                 .WhereIF(dto.StartCreationTime.HasValue && dto.EndCreationTime.HasValue,
                     d => d.CreationTime >= dto.StartCreationTime && d.CreationTime <= dto.EndCreationTime) // 申请时间
+                .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType) //受理类型
+                .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.Order.SourceChannelCode == dto.Channel)//来源渠道
+                .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot))//热点名称
+                .WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart) //受理时间开始
+                .WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd) //受理时间结束
+                .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.Order.ExpiredTime >= dto.ExpiredTimeStart) //期满时间开始
+                .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.Order.ExpiredTime <= dto.ExpiredTimeEnd) //期满时间结束
+                .WhereIF(!string.IsNullOrEmpty(dto.DelayApplyName), d => d.EmployeeName.Contains(dto.DelayApplyName))//申请人
+                .WhereIF(!string.IsNullOrEmpty(dto.DelayApplyOrgName), d => d.ApplyOrgName.Contains(dto.DelayApplyOrgName))//申请部门
+                .WhereIF(dto.IsAutomaticDelay.HasValue && dto.IsAutomaticDelay == true, d => d.AutomaticDelayNum != null && d.AutomaticDelayNum > 0)//自动延期
+                .WhereIF(dto.IsAutomaticDelay.HasValue && dto.IsAutomaticDelay == false, d => d.AutomaticDelayNum == null || d.AutomaticDelayNum == 0)//非自动延期
                 .OrderByDescending(d => d.ApplyDelayTime)
             ;
     }

+ 5 - 0
src/Hotline.Application/Snapshot/RedPackApplication.cs

@@ -343,6 +343,9 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
                             OpenBank = supplement.OpenBank,
                             AuditStatus = special.Status,
                         });
+#if DEBUG
+        var sql = query.ToSqlString();
+#endif        
         return query;
     }
 
@@ -591,6 +594,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
                 entity.No = orderNo;
                 entity.IndustryName = industryName.IndustryName;
                 entity.IndustryId = industryName.IndustryId;
+                entity.ReplenishRemark = dto.ReplenishRemark;
                 await _supplementRecordRepository.AddAsync(entity);
 
                 if (dto.IsSendSMS)
@@ -625,6 +629,7 @@ public class RedPackApplication : IRedPackApplication, IScopeDependency
                 entity.No = orderNo;
                 entity.IndustryName = industryName.IndustryName;
                 entity.IndustryId = industryName.IndustryId;
+                entity.ReplenishRemark = dto.ReplenishRemark;
                 await _supplementRecordRepository.AddAsync(entity);
 
                 if (dto.IsSendSMS)

+ 27 - 0
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -107,6 +107,33 @@ namespace Hotline.Share.Dtos.Order
 
         public List<SystemDicDataOutDto>? OrderTags { get; set; }
 
+        /// <summary>
+        /// 一级标签
+        /// </summary>
+        public string? OrderTagsOneName => GetOrderTagsOne(1);
+
+        /// <summary>
+        /// 二级标签
+        /// </summary>
+        public string? OrderTagsTwoName => GetOrderTagsOne(2);
+
+        private string? GetOrderTagsOne(int level)
+        {
+            if (OrderTags != null && OrderTags.Any())
+            {
+                List<SystemDicDataOutDto> tagsData = [];
+                if (level == 1)
+                    tagsData = OrderTags.Where(p => p.ParentId == null || p.ParentId == "").ToList();
+                if (level == 2)
+                    tagsData = OrderTags.Where(p => p.ParentId != null && p.ParentId != "").ToList();
+                if (tagsData != null && tagsData.Any())
+                {
+                    return string.Join(",", tagsData.Select(x => x.DicDataName));
+                }
+            }
+            return string.Empty;
+        }
+
         #region 流程信息
 
         /// <summary>

+ 122 - 79
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -19,7 +19,7 @@ namespace Hotline.Share.Dtos.Order
         /// 本地编号(√)
         /// </summary>
         public string No { get; set; }
-        
+
         /// <summary>
         /// 标题
         /// </summary>
@@ -269,14 +269,15 @@ namespace Hotline.Share.Dtos.Order
         public string Id { get; set; }
     }
 
-    public record AlterDelayDayDto {
-		public string Id { get; set; }
+    public record AlterDelayDayDto
+    {
+        public string Id { get; set; }
         public int DelayNum { get; set; }
 
-	}
+    }
 
 
-	public record ApplyDelayDto
+    public record ApplyDelayDto
     {
         public string OrderId { get; set; }
 
@@ -301,25 +302,25 @@ namespace Hotline.Share.Dtos.Order
         public bool IsReviewPass { get; set; }
     }
 
-	public record OrderPushTypeCodeDto
-	{
-		/// <summary>
-		/// 开始时间
-		/// </summary>
-		public DateTime? StartTime { get; set; }
-
-		/// <summary>
-		/// 结束时间
-		/// </summary>
-		public DateTime? EndTime { get; set; }
-
-		/// <summary>
-		/// pushTypeCode
-		/// </summary>
-		public string PushTypeCode { get; set; }
-	}
-
-	public class PublishOrderDelayDto
+    public record OrderPushTypeCodeDto
+    {
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        public DateTime? StartTime { get; set; }
+
+        /// <summary>
+        /// 结束时间
+        /// </summary>
+        public DateTime? EndTime { get; set; }
+
+        /// <summary>
+        /// pushTypeCode
+        /// </summary>
+        public string PushTypeCode { get; set; }
+    }
+
+    public class PublishOrderDelayDto
     {
         public string Id { get; set; }
 
@@ -559,11 +560,11 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public int? DataScope { get; set; }
 
-
         /// <summary>
         /// 当前办理节点
         /// </summary>
         public string? CurrentStepName { get; set; }
+
         /// <summary>
         /// 当前办理人
         /// </summary>
@@ -583,6 +584,48 @@ namespace Hotline.Share.Dtos.Order
         /// 延期申请时间
         /// </summary>
         public DateTime? EndCreationTime { get; set; }
+
+        /// <summary>
+        /// 受理类型
+        /// </summary>
+        public string? AcceptType { get; set; }
+
+        /// <summary>
+        /// 热点分类关键词
+        /// </summary>
+        public string? Hotspot { get; set; }
+
+        /// <summary>
+        /// 受理时间(工单创建时间)
+        /// </summary>
+        public DateTime? CreationTimeStart { get; set; }
+        public DateTime? CreationTimeEnd { get; set; }
+
+        /// <summary>
+        /// 期满时间
+        /// </summary>
+        public DateTime? ExpiredTimeStart { get; set; }
+        public DateTime? ExpiredTimeEnd { get; set; }
+
+        /// <summary>
+        /// 来源渠道
+        /// </summary>
+        public string? Channel { get; set; }
+
+        /// <summary>
+        /// 延期申请人
+        /// </summary>
+        public string? DelayApplyName { get; set; }
+
+        /// <summary>
+        /// 延期申请部门
+        /// </summary>
+        public string? DelayApplyOrgName { get; set; }
+
+        /// <summary>
+        /// 是否自动延期
+        /// </summary>
+        public bool? IsAutomaticDelay { get; set; }
     }
 
     public record ApplySuperviseDto
@@ -933,71 +976,71 @@ namespace Hotline.Share.Dtos.Order
         public string? Address { get; set; }
     }
 
-    public record OrgSendBackAuditListDto : PagedKeywordRequest 
+    public record OrgSendBackAuditListDto : PagedKeywordRequest
     {
-		public string? OrgName { get; set; }
-		public string? OrgId { get; set; }
+        public string? OrgName { get; set; }
+        public string? OrgId { get; set; }
 
 
-		public string? No { get; set; }
+        public string? No { get; set; }
 
-		public string? Title { get; set; }
+        public string? Title { get; set; }
 
 
-		/// <summary>
-		/// 来源渠道(√)
-		/// </summary>
-		public string? Channel { get; set; }
+        /// <summary>
+        /// 来源渠道(√)
+        /// </summary>
+        public string? Channel { get; set; }
 
-		/// <summary>
-		/// 受理类型(√)
-		/// </summary>
-		public string? AcceptType { get; set; }
+        /// <summary>
+        /// 受理类型(√)
+        /// </summary>
+        public string? AcceptType { get; set; }
 
-		/// <summary>
-		/// 热点分类
-		/// </summary>
-		public string? Hotspot { get; set; }
+        /// <summary>
+        /// 热点分类
+        /// </summary>
+        public string? Hotspot { get; set; }
 
 
-		/// <summary>
-		/// 受理时间(工单创建时间)(√)
-		/// </summary>
-		public DateTime? CreationTimeStart { get; set; }
-		public DateTime? CreationTimeEnd { get; set; }
+        /// <summary>
+        /// 受理时间(工单创建时间)(√)
+        /// </summary>
+        public DateTime? CreationTimeStart { get; set; }
+        public DateTime? CreationTimeEnd { get; set; }
+
+        /// <summary>
+        /// 申请部门
+        /// </summary>
+        public string? ApplyOrgName { get; set; }
+
+        /// <summary>
+        /// 申请人
+        /// </summary>
+        public string? ApplyUserName { get; set; }
+
+        /// <summary>
+        /// 退回审批状态
+        /// </summary>
+        public ESendBackAuditState? State { get; set; }
+
+        /// <summary>
+        /// 审批人
+        /// </summary>
+        public string? AuditUser { get; set; }
 
-		/// <summary>
-		/// 申请部门
-		/// </summary>
-		public string? ApplyOrgName { get; set; }
-
-		/// <summary>
-		/// 申请人
-		/// </summary>
-		public string? ApplyUserName { get; set; }
-
-		/// <summary>
-		/// 退回审批状态
-		/// </summary>
-		public ESendBackAuditState? State { get; set; }
-
-		/// <summary>
-		/// 审批人
-		/// </summary>
-		public string? AuditUser { get; set; }
-
-		/// <summary>
-		/// 审批时间
-		/// </summary>
-		public DateTime? AuditTimeStart { get; set; }
-
-		public DateTime? AuditTimeEnd { get; set; }
-
-		/// <summary>
-		/// 审批意见
-		/// </summary>
-		public string? AuditContent { get; set; }
-	}
+        /// <summary>
+        /// 审批时间
+        /// </summary>
+        public DateTime? AuditTimeStart { get; set; }
+
+        public DateTime? AuditTimeEnd { get; set; }
+
+        /// <summary>
+        /// 审批意见
+        /// </summary>
+        public string? AuditContent { get; set; }
+    }
 
 
     public enum EPublicState

+ 5 - 0
src/Hotline.Share/Dtos/Settings/SystemDicDataDto.cs

@@ -20,6 +20,11 @@
         /// </summary>
         public string DicDataValue { get; set; }
 
+        /// <summary>
+		/// 上级ID
+		/// </summary>
+        public string? ParentId { get; set; }
+
         /// <summary>
         /// 子集集合
         /// </summary>

+ 16 - 0
src/Hotline.Share/Dtos/Snapshot/RedPackDto.cs

@@ -199,6 +199,11 @@ public class SnapshotRedPackRecordSupplementItemsOutDto
     /// </summary>
     public string FromPhone { get; set; }
 
+    /// <summary>
+    /// 来电人姓名
+    /// </summary>
+    public string FromName { get; set; }
+
     /// <summary>
     /// 区域
     /// </summary>
@@ -238,6 +243,17 @@ public class SnapshotRedPackRecordSupplementItemsOutDto
     /// 备注
     /// </summary>
     public string Remark { get; set; }
+
+    /// <summary>
+    /// 补充发放类型
+    /// </summary>
+    public string? ReplenishType { get; set; }
+
+    /// <summary>
+    /// 补充发放类型Id
+    /// </summary>
+    public string? ReplenishTypeId { get; set; }
+
 }
 
 public record SnapshotRedPackRecordSupplementItemsInDto : PagedRequest

+ 3 - 3
src/Hotline/Identity/IdentityDomainService.cs

@@ -30,10 +30,10 @@ public class IdentityDomainService : IIdentityDomainService, IScopeDependency
                随机数nonce60s内不能重复
              */
         if (string.IsNullOrEmpty(request.Nonce)) return false;
-        var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+        var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
         _logger.LogInformation($"now:{now}, req:{request.Timestamp}");
-        if (request.Timestamp >= now) return false;
-        if ((now - request.Timestamp) >= 60000) return false;
+        if (request.Timestamp > now) return false;
+        if ((now - request.Timestamp) >= 60) return false;
         var nonce = _cacheAccountNonce.Get(request.Username)?.Nonce;
         _logger.LogInformation($"nonce:{nonce}, reqnonce:{request.Nonce}");
         if (!string.IsNullOrEmpty(nonce) && string.CompareOrdinal(nonce, request.Nonce) == 0) return false;

+ 28 - 2
test/Hotline.Tests/Application/OrderSnapshotApplicationTest.cs

@@ -113,7 +113,7 @@ public class OrderSnapshotApplicationTest : TestBase
         SetSettingCache(SettingConstants.OvertimeBack, "4");
         var snapshotLabels = _systemDicDataCacheManager.SnapshotOrderLabel;
         var inputLable = snapshotLabels.Where(m => m.DicDataValue == "bss").ToList();
-        var industryCase = await _industryCaseRepository.Queryable().Where(m => m.IsEnable ==  true).FirstAsync();
+        var industryCase = await _industryCaseRepository.Queryable().Where(m => m.IsEnable == true).FirstAsync();
         var order = _orderServiceMock.CreateSnapshotOrder(SetWeiXin)
             .办理到网格员(SetZuoXi)
             .StepHandle(async (order, mock) =>
@@ -170,7 +170,8 @@ public class OrderSnapshotApplicationTest : TestBase
                 data.IndustryCase = industryCase.Id;
                 data.IsRectifyDepartment = true;
             })
-            .StepHandle(async order => {
+            .StepHandle(async order =>
+            {
                 var snapshot = await _orderSnapshotRepository.GetAsync(order.Id);
                 snapshot.IndustryCase.ShouldBe(industryCase.Id);
                 var orderDetail = await _orderController.Get(order.Id);
@@ -210,6 +211,31 @@ public class OrderSnapshotApplicationTest : TestBase
                 baseData.AuditType.ShouldNotBeNull();
                 baseData.AuditTypeCode.ShouldNotBeNull();
                 baseData.Amount.ShouldNotBeNull();
+
+                var specialRedAuditItems = await _redPackApplication.GetRedPackSpecialAuditItems(new SnapshotOrderAuditItemsInDto(order.No, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1) { PageIndex = 1, PageSize = 10 }).ToListAsync();
+                var specialRedAudit = specialRedAuditItems.FirstOrDefault();
+                specialRedAudit.ShouldNotBeNull();
+                var a = _systemDicDataCacheManager.SnapshotReplenishType.First();
+                var inDto = new UpdateRedPackRecordInDto
+                {
+                    RedPackAuditId = baseData.RedPackAuditId,
+                    Name = "收银人",
+                    BankCardNo = "1233921321",
+                    OpenBank = "建设银行",
+                    ReplenishAmount = 10,
+                    ReplenishTime = DateTime.Now,
+                    ReplenishRemark = "补充发放备注",
+                    IsSendSMS = false,
+                    ReplenishType = a.DicDataName,
+                    ReplenishTypeId = a.DicDataValue
+                };
+
+                await _redPackApplication.UpdateRedPackSpecialRecordAsync(inDto);
+                specialRedAuditItems = await _redPackApplication.GetRedPackSpecialAuditItems(new SnapshotOrderAuditItemsInDto(order.No, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1) { PageIndex = 1, PageSize = 10 }).ToListAsync();
+                specialRedAudit = specialRedAuditItems.First();
+                specialRedAudit.ShouldNotBeNull();
+                specialRedAudit.BankCardNo.ShouldBe(inDto.BankCardNo);
+                specialRedAudit.OpenBank.ShouldBe(inDto.OpenBank);
             })
             .GetCreateResult();
         order.Id.ShouldNotBeNull();

+ 11 - 0
test/Hotline.Tests/Application/RedPackApplicationTest.cs

@@ -8,6 +8,7 @@ using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Snapshot;
 using Hotline.Share.Enums.Snapshot;
+using Hotline.Share.Tools;
 using Hotline.Snapshot.IRepository;
 using Hotline.Tests.Mock;
 using Hotline.ThirdAccountDomainServices;
@@ -164,4 +165,14 @@ public class RedPackApplicationTest : TestBase
         }).ToListAsync();
         sendRecordItems.Count.ShouldNotBe(0);
     }
+
+    [Fact]
+    public async Task GetRedPackRecordSupplementItems_Test()
+    {
+        var items = await _redPackApplication.GetRedPackRecordSupplementItems(new SnapshotRedPackRecordSupplementItemsInDto()).ToListAsync();
+        items.Any(m => m.FromName.NotNullOrEmpty()).ShouldBeTrue();
+        items.Any(m => m.Remark.NotNullOrEmpty()).ShouldBeTrue();
+        items.Any(m => m.ReplenishType.NotNullOrEmpty()).ShouldBeTrue();
+        items.ShouldNotBeNull();
+    }
 }