瀏覽代碼

Merge branch 'master' of http://git.fway.com.cn/Fengwo/hotline

田爽 1 年之前
父節點
當前提交
388027b6a6

+ 1 - 1
src/Hotline.Api/Controllers/OrderController.cs

@@ -996,7 +996,7 @@ public class OrderController : BaseController
             ECommercePlatformOptions = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.ECommercePlatform),
             PatentTypeOptions = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.PatentType),
             AffairTargetOptions = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.AffairTarget),
-            ComplainTypeOptions = EnumExts.GetDescriptions<EComplainType>(),
+            ComplainTypeOptions = EnumExts.GetDescriptions<EComplainType>().Select(d => new IdName(d.Key.ToString(), d.Value)),
             SalesChannelOptions = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.SalesChannel),
         };
         return rsp;

+ 37 - 1
src/Hotline.Api/Controllers/SysController.cs

@@ -26,6 +26,7 @@ namespace Hotline.Api.Controllers
         private readonly ISysDicTypeRepository _sysDicTypeRepository;
         private readonly ISysDicDataRepository _sysDicDataRepository;
         private readonly ISystemAreaDomainService _systemAreaDomainService;
+        private readonly ISystemAreaRepository _systemAreaRepository;
 
 
         /// <summary>
@@ -42,7 +43,8 @@ namespace Hotline.Api.Controllers
             ISystemMenuRepository systemMenuRepository,
             ISysDicTypeRepository sysDicTypeRepository,
             ISysDicDataRepository sysDicDataRepository,
-            ISystemAreaDomainService systemAreaDomainService
+            ISystemAreaDomainService systemAreaDomainService,
+            ISystemAreaRepository systemAreaRepository
             )
         {
             _mapper = mapper;
@@ -51,6 +53,7 @@ namespace Hotline.Api.Controllers
             _sysDicTypeRepository = sysDicTypeRepository;
             _sysDicDataRepository = sysDicDataRepository;
             _systemAreaDomainService = systemAreaDomainService;
+            _systemAreaRepository = systemAreaRepository;
         }
 
         #region 菜单管理
@@ -326,6 +329,31 @@ namespace Hotline.Api.Controllers
         public async Task AddArea([FromBody] AddAreaDto dto)
         {
             var model = _mapper.Map<SystemArea>(dto);
+            if (string.IsNullOrEmpty(model.ParentId) || model.ParentId.Length > 6)
+            {
+                throw UserFriendlyException.SameMessage("只允许添加乡镇、街道数据,请选择区县");
+            }
+            if(model.ParentId.Substring(4,2) == "00")
+            {
+                throw UserFriendlyException.SameMessage("只允许添加乡镇、街道数据,请选择区县");
+            }
+            //验证重复
+            var area = await _systemAreaRepository.GetAsync(x => x.ParentId == dto.ParentId && x.AreaName == dto.AreaName);
+            if (area!=null)
+            {
+                if (area.IsDeleted)
+                {
+                    area.IsDeleted = false;
+                    await _systemAreaRepository.UpdateAsync(area, HttpContext.RequestAborted);
+                    throw UserFriendlyException.SameMessage("同目录下已存在被删除的相同数据,已重新启用");
+                }
+                else
+                {
+                    throw UserFriendlyException.SameMessage("同目录下已存在相同数据,不能重复添加");
+                }
+            }
+            //生成新Code
+            model.Id = await _systemAreaDomainService.GenerateNewAreaCodeAsync(dto.ParentId, HttpContext.RequestAborted);
             model.IsCanModify = true;
             await _systemAreaDomainService.AddArea(model, HttpContext.RequestAborted);
         }
@@ -346,6 +374,14 @@ namespace Hotline.Api.Controllers
                 throw UserFriendlyException.SameMessage("系统数据,不能修改");
 
             model = _mapper.Map<SystemArea>(dto);
+
+            //验证重复
+            var area = await _systemAreaRepository.GetAsync(x => x.ParentId == dto.ParentId && x.AreaName == dto.AreaName);
+            if (area != null)
+            {
+               throw UserFriendlyException.SameMessage("同目录下已存在相同数据,不能修改");
+            }
+
             await _systemAreaDomainService.ModifyArea(model, HttpContext.RequestAborted);
         }
 

+ 1 - 1
src/Hotline.Share/Dtos/Order/OrderComplainDto.cs

@@ -116,7 +116,7 @@ public class OrderExtensionDto
     /// <summary>
     /// 注册地址
     /// </summary>
-    public Position RegisterPosition { get; set; }
+    public string RegisterAddress { get; set; }
 
     /// <summary>
     /// 注册号

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

@@ -84,6 +84,11 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public DateTime? ExpiredTime { get; set; }
 
+        /// <summary>
+        /// 交办时间(中心交部门办理时间)
+        /// </summary>
+        public DateTime? CenterToOrgTime { get; set; }
+
         /// <summary>
         /// 归档时间(暂为流程结束时间,因流程结束自动归档)
         /// </summary>
@@ -232,6 +237,16 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? AcceptorStaffNo { get; set; }
 
+        /// <summary>
+        /// 受理人部门编码
+        /// </summary>
+        public string? AcceptorOrgCode { get; set; }
+
+        /// <summary>
+        /// 受理人部门名称
+        /// </summary>
+        public string? AcceptorOrgName { get; set; }
+
         #endregion
 
         #endregion

+ 1 - 1
src/Hotline.Share/Hotline.Share.csproj

@@ -7,7 +7,7 @@
     <GenerateDocumentationFile>True</GenerateDocumentationFile>
     <NoWarn>$(NoWarn);1591;8618;</NoWarn>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.11</Version>
+    <Version>1.0.14</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 11 - 5
src/Hotline/FlowEngine/Workflows/Workflow.cs

@@ -82,6 +82,11 @@ public class Workflow : CreationEntity
     /// </summary>
     public DateTime? ActualHandleStepCreateTime { get; set; }
 
+    /// <summary>
+    /// 实际办理节点签收时间
+    /// </summary>
+    public DateTime? ActualHandleStepAcceptTime { get; set; }
+
     /// <summary>
     /// 实际办理时间
     /// </summary>
@@ -208,6 +213,11 @@ public class Workflow : CreationEntity
     /// </summary>
     public DateTime? CenterToOrgTime { get; set; }
 
+    /// <summary>
+    /// 外部业务唯一标识
+    /// </summary>
+    public string ExternalId { get; set; }
+
     #region 办理对象
 
     /// <summary>
@@ -240,11 +250,6 @@ public class Workflow : CreationEntity
 
     #endregion
 
-    /// <summary>
-    /// 外部业务唯一标识
-    /// </summary>
-    public string ExternalId { get; set; }
-
     #region 一级部门
 
     /// <summary>
@@ -380,6 +385,7 @@ public class Workflow : CreationEntity
         if (step is null)
             throw new UserFriendlyException($"未查询到对应实际办理子节点,workflowId: {Id}");
         ActualOpinion = step.Opinion;
+        ActualHandleStepAcceptTime = step.AcceptTime;
     }
 
     /// <summary>

+ 10 - 0
src/Hotline/Orders/Order.cs

@@ -285,6 +285,11 @@ namespace Hotline.Orders
         /// </summary>
         public DateTime? ExpiredTime { get; set; }
 
+        /// <summary>
+        /// 交办时间(中心交部门办理时间)
+        /// </summary>
+        public DateTime? CenterToOrgTime { get; set; }
+
         /// <summary>
         /// 归档时间(暂为流程结束时间,因流程结束自动归档)
         /// </summary>
@@ -319,6 +324,11 @@ namespace Hotline.Orders
         /// </summary>
         public DateTime? ActualHandleStepCreateTime { get; set; }
 
+        /// <summary>
+        /// 实际办理节点签收时间
+        /// </summary>
+        public DateTime? ActualHandleStepAcceptTime { get; set; }
+
         /// <summary>
         /// 实际办理时间
         /// </summary>

+ 1 - 1
src/Hotline/Orders/OrderComplain.cs

@@ -37,7 +37,7 @@ public class OrderComplain : OrderExtensionEntity
     /// 经营地址,销售方式为“现场”时必填
     /// </summary>
     [SugarColumn(ColumnDataType = "json", IsJson = true)]
-    public Position BusinessPosition { get; set; }
+    public Position? BusinessPosition { get; set; }
 
     /// <summary>
     /// 诉求内容,多选

+ 2 - 3
src/Hotline/Orders/OrderExtensionEntity.cs

@@ -96,8 +96,7 @@ public abstract class OrderExtensionEntity : FullStateEntity
     /// <summary>
     /// 注册地址
     /// </summary>
-    [SugarColumn(ColumnDataType = "json", IsJson = true)]
-    public Position RegisterPosition { get; set; }
+    public string RegisterAddress { get; set; }
 
     /// <summary>
     /// 注册号
@@ -236,7 +235,7 @@ public abstract class OrderExtensionEntity : FullStateEntity
     /// <summary>
     /// 产品有效期
     /// </summary>
-    public DateTime ProductExpiredTime { get; set; }
+    public DateTime? ProductExpiredTime { get; set; }
 
     /// <summary>
     /// 生产厂家

+ 3 - 0
src/Hotline/Settings/ISystemAreaDomainService.cs

@@ -12,5 +12,8 @@ namespace Hotline.Settings
         Task<SystemArea?> GetArea(string id, CancellationToken cancellationToken);
 
         Task DelArea(string id,CancellationToken cancellationToken);
+
+
+        Task<string> GenerateNewAreaCodeAsync(string parentId, CancellationToken cancellationToken);
     }
 }

+ 19 - 0
src/Hotline/Settings/SystemArea.cs

@@ -1,4 +1,6 @@
 using SqlSugar;
+using System.Runtime.CompilerServices;
+using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 
 namespace Hotline.Settings
@@ -30,5 +32,22 @@ namespace Hotline.Settings
 
         [SugarColumn(IsIgnore = true)]
         public List<SystemArea> Children { get; set; }
+
+    }
+
+    public static class AreaExtensions
+    {
+        /// <summary>
+        /// 获取最末级区域对应编码(最后2位)
+        /// </summary>
+        /// <param name="areaCode"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        public static string GetLastAreaCode(this string areaCode)
+        {
+            if (areaCode.Length < 6)
+                throw new UserFriendlyException("非法区域编码");
+            return areaCode.Substring(areaCode.Length - 2, 2);
+        }
     }
 }

+ 28 - 0
src/Hotline/Settings/SystemAreaDomainService.cs

@@ -1,4 +1,5 @@
 using XF.Domain.Dependency;
+using XF.Domain.Exceptions;
 
 namespace Hotline.Settings
 {
@@ -35,5 +36,32 @@ namespace Hotline.Settings
         {
             await _systemAreaRepository.RemoveAsync(id, true, cancellationToken);
         }
+
+        /// <summary>
+        /// 生成新的区域编码
+        /// </summary>
+        /// <param name="parentId"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
+        public async Task<string> GenerateNewAreaCodeAsync(string parentId,CancellationToken cancellationToken)
+        {
+            var parentArea = await _systemAreaRepository.GetAsync(parentId, cancellationToken);
+            if (parentArea == null)
+                throw new UserFriendlyException("无效数据");
+
+            var maxCode = await _systemAreaRepository.Queryable()
+                .Where(d => d.ParentId == parentId)
+                .MaxAsync(d => d.Id, cancellationToken);
+
+            if (string.IsNullOrEmpty(maxCode))
+                return $"{parentArea.Id}01";
+
+            if (!int.TryParse(maxCode.GetLastAreaCode(), out var max))
+                throw new UserFriendlyException("无效区域编码");
+
+            return $"{parentArea.Id}{max + 1}";
+
+        }
     }
 }