lixiaojun
2023-10-21 d9526a1b27e64640e92604b55549ee586c1a1a34
新增证书
已修改4个文件
已添加12个文件
1103 ■■■■■ 文件已修改
IStation.Application.SqiAirp/00-core/1-mapper/Mapper.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/03-certificate/1-mgr/Certificate_Controller.cs 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/03-certificate/1-mgr/dto/AddCertificateInput.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/03-certificate/1-mgr/dto/CertificateDto.cs 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/03-certificate/1-mgr/dto/UpdateCertificateInput.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/03-certificate/2-std/AirpSite_StdController.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/03-certificate/2-std/dto/CertificateStdDto.cs 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/IStation.Application.SqiAirp.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Entry.SqiAirp/IStation.Entry.SqiAirp.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Entry.SqiAirp/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Service.SqiAirp/1-entity/03-certificate/Certificate.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Service.SqiAirp/2-model/03-certificate/Certificate.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Service.SqiAirp/4-dal/03-certificate/Certificate.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Service.SqiAirp/5-service/03-certificate/Cache/CertificateCacheHelper.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Service.SqiAirp/5-service/03-certificate/Certificate.cs 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Service.SqiAirp/5-service/03-certificate/Certificate_Instance.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IStation.Application.SqiAirp/00-core/1-mapper/Mapper.cs
@@ -29,6 +29,14 @@
            #endregion
            #region 3-certificate
            config.ForType<AddCertificateInput, Model.Certificate>();
            config.ForType<UpdateCertificateInput, Model.Certificate>();
            config.ForType<Model.Certificate, CertificateDto>();
            #endregion
        }
    }
IStation.Application.SqiAirp/03-certificate/1-mgr/Certificate_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
namespace IStation.Application
{
    /// <summary>
    /// Certificate
    /// </summary>
    [Route("SQI/Certificate")]
    [ApiDescriptionSettings("SQI", Name = "证书", Order = 80000)]
    public class Certificate_Controller : IDynamicApiController
    {
        private readonly Service.Certificate _service = new();
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<CertificateDto> GetAll()
        {
            var list = _service.GetAll();
            var vm_list = list?.Select(x => new CertificateDto(x)).ToList();
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public CertificateDto GetByID([FromQuery][Required] IDInput input)
        {
            var model = _service.GetByID(input.ID);
            return model == null ? null : new CertificateDto(model);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<CertificateDto> GetByIds([FromQuery][Required] IdsInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var list = _service.GetByIds(ids);
            var vm_list = list?.Select(x => new CertificateDto(x)).ToList();
            return vm_list;
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ’入一条 â˜…
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert([Required] AddCertificateInput input)
        {
            var model = input.Adapt<AddCertificateInput, Model.Certificate>();
            model.SortCode = _service.GetMaxSortCode() + 1;
            var id = _service.Insert(model);
            return id;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update([Required] UpdateCertificateInput input)
        {
            var model = _service.GetByID(input.ID);
            if (model == null)
            {
                throw new ApiException(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} æ•°æ®ä¸å­˜åœ¨");
            }
            var rhs = new Model.Certificate(model);
            input.Adapt(rhs);
            var bol = _service.Update(rhs);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序码
        /// </summary>
        [Route("UpdateSortCode@V1.0")]
        [HttpPut]
        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
        {
            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序
        /// </summary>
        [Route("UpdateSorter@V1.0")]
        [HttpPut]
        public bool UpdateSorter([Required] List<UpdateSortCodeInput> input)
        {
            var list = input.Select(x => x.Adapt<UpdateSortCodeInput, Yw.Model.Sorter>()).ToList();
            var bol = _service.UpdateSorter(list);
            return bol;
        }
        #endregion
        #region Delete
        /// <summary>
        /// åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public bool DeleteByID([FromQuery][Required] IDInput input)
        {
            var bol = _service.DeleteByID(input.ID, out string Msg);
            if (!bol)
            {
                throw new ApiException(eResultCode.Alert, ErrorCodes.D999, Msg);
            }
            return bol;
        }
        #endregion
    }
}
IStation.Application.SqiAirp/03-certificate/1-mgr/dto/AddCertificateInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
namespace IStation.Application
{
    /// <summary>
    ///
    /// </summary>
    public class AddCertificateInput
    {
        /// <summary>
        /// ç”Ÿäº§ä¼ä¸šåç§°
        /// </summary>
        public string ManufacturerName { get; set; }
        /// <summary>
        /// ç”¨æˆ·åç§°
        /// </summary>
        public string UseName { get; set; }
        /// <summary>
        /// è¯ä¹¦ç¼–号
        /// </summary>
        public string CertificateNO { get; set; }
        /// <summary>
        /// åŽ‹ç¼©ç©ºæ°”ç«™åç§°
        /// </summary>
        public string CertificateName { get; set; }
        /// <summary>
        /// ä¸»è¦è®¾å¤‡åž‹å·
        /// </summary>
        public string MainEquipmentModels { get; set; }
        /// <summary>
        /// èƒ½æ•ˆç­‰çº§
        /// </summary>
        public string EtaLevel { get; set; }
        /// <summary>
        /// æ£€æµ‹å•位名称
        /// </summary>
        public string TestingUnitName { get; set; }
        /// <summary>
        /// å‘证单位名称
        /// </summary>
        public string IssuingUnitName { get; set; }
        /// <summary>
        /// å‘证日期
        /// </summary>
        public DateTime IssuanceDay { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
IStation.Application.SqiAirp/03-certificate/1-mgr/dto/CertificateDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
namespace IStation.Application
{
    /// <summary>
    ///
    /// </summary>
    public class CertificateDto
    {
        /// <summary>
        ///
        /// </summary>
        public CertificateDto() { }
        /// <summary>
        ///
        /// </summary>
        public CertificateDto(Model.Certificate rhs)
        {
            this.ID = rhs.ID;
            this.ManufacturerName = rhs.ManufacturerName;
            this.UseName = rhs.UseName;
            this.CertificateNO = rhs.CertificateNO;
            this.AirpSiteName = rhs.AirpSiteName;
            this.MainEquipmentModels = rhs.MainEquipmentModels;
            this.EtaLevel = rhs.EtaLevel;
            this.TestingUnitName = rhs.TestingUnitName;
            this.IssuingUnitName = rhs.IssuingUnitName;
            this.IssuanceDay = rhs.IssuanceDay;
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// id
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// ç”Ÿäº§ä¼ä¸šåç§°
        /// </summary>
        public string ManufacturerName { get; set; }
        /// <summary>
        /// ç”¨æˆ·åç§°
        /// </summary>
        public string UseName { get; set; }
        /// <summary>
        /// è¯ä¹¦ç¼–号
        /// </summary>
        public string CertificateNO { get; set; }
        /// <summary>
        /// åŽ‹ç¼©ç©ºæ°”ç«™åç§°
        /// </summary>
        public string AirpSiteName { get; set; }
        /// <summary>
        /// ä¸»è¦è®¾å¤‡åž‹å·
        /// </summary>
        public string MainEquipmentModels { get; set; }
        /// <summary>
        /// èƒ½æ•ˆç­‰çº§
        /// </summary>
        public string EtaLevel { get; set; }
        /// <summary>
        /// æ£€æµ‹å•位名称
        /// </summary>
        public string TestingUnitName { get; set; }
        /// <summary>
        /// å‘证单位名称
        /// </summary>
        public string IssuingUnitName { get; set; }
        /// <summary>
        /// å‘证日期
        /// </summary>
        public DateTime IssuanceDay { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
IStation.Application.SqiAirp/03-certificate/1-mgr/dto/UpdateCertificateInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
namespace IStation.Application
{
    /// <summary>
    ///
    /// </summary>
    public class UpdateCertificateInput
    {
        /// <summary>
        /// id
        /// </summary>
        [Required, Range(1, long.MaxValue, ErrorMessage = "ID å¿…须大于0")]
        public long ID { get; set; }
        /// <summary>
        /// ç”Ÿäº§ä¼ä¸šåç§°
        /// </summary>
        public string ManufacturerName { get; set; }
        /// <summary>
        /// ç”¨æˆ·åç§°
        /// </summary>
        public string UseName { get; set; }
        /// <summary>
        /// è¯ä¹¦ç¼–号
        /// </summary>
        public string CertificateNO { get; set; }
        /// <summary>
        /// åŽ‹ç¼©ç©ºæ°”ç«™åç§°
        /// </summary>
        public string CertificateName { get; set; }
        /// <summary>
        /// ä¸»è¦è®¾å¤‡åž‹å·
        /// </summary>
        public string MainEquipmentModels { get; set; }
        /// <summary>
        /// èƒ½æ•ˆç­‰çº§
        /// </summary>
        public string EtaLevel { get; set; }
        /// <summary>
        /// æ£€æµ‹å•位名称
        /// </summary>
        public string TestingUnitName { get; set; }
        /// <summary>
        /// å‘证单位名称
        /// </summary>
        public string IssuingUnitName { get; set; }
        /// <summary>
        /// å‘证日期
        /// </summary>
        public DateTime IssuanceDay { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
IStation.Application.SqiAirp/03-certificate/2-std/AirpSite_StdController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
namespace IStation.Application
{
    /// <summary>
    /// Certificate
    /// </summary>
    [Route("SQI/Certificate/Std")]
    [ApiDescriptionSettings("SQI", Name = "证书(Std)", Order = 79900)]
    public class Certificate_StdController : IDynamicApiController
    {
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<CertificateStdDto> GetAll()
        {
            var keyContent = $"SQI_Certificate_Std_GetAll";
            var cacheKey = $"{MemoryCacheKeyHelper.GetPrefix(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module)}_{keyContent}";
            var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var allList = new Service.Certificate().GetAll();
                var vmList = allList?.Select(x => new CertificateStdDto(x)).ToList();
                return vmList;
            }, CacheHelper.CacheLevel5);
            return vm_list;
        }
    }
}
IStation.Application.SqiAirp/03-certificate/2-std/dto/CertificateStdDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
namespace IStation.Application
{
    /// <summary>
    ///
    /// </summary>
    public class CertificateStdDto
    {
        /// <summary>
        ///
        /// </summary>
        public CertificateStdDto() { }
        /// <summary>
        ///
        /// </summary>
        public CertificateStdDto(Model.Certificate rhs)
        {
            this.ID = rhs.ID;
            this.ManufacturerName = rhs.ManufacturerName;
            this.UseName = rhs.UseName;
            this.CertificateNO = rhs.CertificateNO;
            this.AirpSiteName = rhs.AirpSiteName;
            this.MainEquipmentModels = rhs.MainEquipmentModels;
            this.EtaLevel = rhs.EtaLevel;
            this.TestingUnitName = rhs.TestingUnitName;
            this.IssuingUnitName = rhs.IssuingUnitName;
            this.IssuanceDay = rhs.IssuanceDay;
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// id
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// ç”Ÿäº§ä¼ä¸šåç§°
        /// </summary>
        public string ManufacturerName { get; set; }
        /// <summary>
        /// ç”¨æˆ·åç§°
        /// </summary>
        public string UseName { get; set; }
        /// <summary>
        /// è¯ä¹¦ç¼–号
        /// </summary>
        public string CertificateNO { get; set; }
        /// <summary>
        /// åŽ‹ç¼©ç©ºæ°”ç«™åç§°
        /// </summary>
        public string AirpSiteName { get; set; }
        /// <summary>
        /// ä¸»è¦è®¾å¤‡åž‹å·
        /// </summary>
        public string MainEquipmentModels { get; set; }
        /// <summary>
        /// èƒ½æ•ˆç­‰çº§
        /// </summary>
        public string EtaLevel { get; set; }
        /// <summary>
        /// æ£€æµ‹å•位名称
        /// </summary>
        public string TestingUnitName { get; set; }
        /// <summary>
        /// å‘证单位名称
        /// </summary>
        public string IssuingUnitName { get; set; }
        /// <summary>
        /// å‘证日期
        /// </summary>
        public DateTime IssuanceDay { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
    }
}
IStation.Application.SqiAirp/IStation.Application.SqiAirp.csproj
@@ -25,7 +25,7 @@
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Yw.Application.Core" Version="1.2.1" />
    <PackageReference Include="Yw.Application.Core" Version="1.2.2" />
  </ItemGroup>
  <ItemGroup>
IStation.Entry.SqiAirp/IStation.Entry.SqiAirp.csproj
@@ -21,7 +21,7 @@
        <PackageReference Include="Yw.Application.Assets.Core" Version="1.1.5" />
        <PackageReference Include="Yw.Application.Basic.Core" Version="1.1.4" />
        <PackageReference Include="Yw.Application.Dict.Core" Version="1.0.4" />
        <PackageReference Include="Yw.Application.Monitor.Core" Version="1.4.4" />
        <PackageReference Include="Yw.Application.Monitor.Core" Version="1.4.6" />
        <PackageReference Include="Yw.Application.Unit.Core" Version="1.0.5" />
    </ItemGroup>
IStation.Entry.SqiAirp/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,6 +5,6 @@
<Project>
  <PropertyGroup>
    <_PublishTargetUrl>D:\WorkData\git\istation\SqiAirp\IStation.Entry.SqiAirp\bin\Release\net6.0\publish\</_PublishTargetUrl>
    <History>True|2023-10-19T01:56:48.5150728Z;True|2023-10-18T14:59:01.0684811+08:00;True|2023-10-17T16:12:58.7322358+08:00;True|2023-10-07T12:25:54.8757007+08:00;True|2023-10-07T12:13:15.0880517+08:00;True|2023-10-07T12:12:39.1803333+08:00;True|2023-10-07T12:02:22.4047422+08:00;True|2023-09-26T15:07:05.5606369+08:00;True|2023-09-25T16:53:00.5107971+08:00;True|2023-09-25T16:49:56.9145285+08:00;True|2023-09-25T14:28:29.4414039+08:00;True|2023-09-25T11:19:00.8735501+08:00;True|2023-09-21T13:54:19.1780900+08:00;True|2023-09-21T13:16:00.2957740+08:00;True|2023-09-21T11:28:36.3091944+08:00;True|2023-09-21T11:18:20.1060798+08:00;True|2023-09-13T16:00:49.4080881+08:00;True|2023-09-11T13:53:38.8582724+08:00;True|2023-09-01T10:32:37.4923361+08:00;True|2023-08-30T16:52:43.1952609+08:00;True|2023-08-30T13:41:35.0430741+08:00;True|2023-08-28T14:53:24.2454140+08:00;True|2023-08-28T13:50:55.9362462+08:00;True|2023-08-28T10:00:17.0366755+08:00;True|2023-08-25T15:41:23.8727088+08:00;True|2023-08-24T16:47:54.1391198+08:00;True|2023-08-24T16:40:29.0473991+08:00;True|2023-08-22T15:02:27.5312918+08:00;True|2023-08-22T11:18:43.6918732+08:00;True|2023-08-21T15:10:42.9223597+08:00;True|2023-08-21T14:21:08.1887373+08:00;True|2023-08-21T11:56:07.5304445+08:00;True|2023-08-18T16:57:57.0506312+08:00;True|2023-08-18T13:51:54.9145260+08:00;True|2023-08-17T14:52:44.6557301+08:00;True|2023-08-17T14:15:19.8255432+08:00;True|2023-08-17T14:03:01.1586247+08:00;True|2023-08-17T11:46:51.6685579+08:00;True|2023-08-16T11:12:27.1684542+08:00;True|2023-08-15T16:59:09.4901359+08:00;True|2023-08-10T14:08:04.8032876+08:00;True|2023-08-10T13:55:01.9698355+08:00;True|2023-08-10T10:43:44.0440039+08:00;True|2023-08-10T10:12:03.9359243+08:00;True|2023-08-09T15:07:46.6906781+08:00;True|2023-08-09T13:12:06.7912004+08:00;True|2023-08-09T10:23:24.5864225+08:00;True|2023-08-08T17:38:10.4753030+08:00;True|2023-08-08T12:56:08.9783211+08:00;True|2023-08-06T09:18:33.3703637+08:00;True|2023-08-03T11:01:58.9814864+08:00;True|2023-08-03T10:26:08.4681748+08:00;True|2023-08-02T20:33:35.0425049+08:00;True|2023-08-02T17:31:18.4675932+08:00;True|2023-08-02T16:04:16.8761862+08:00;True|2023-08-02T13:48:38.9129192+08:00;True|2023-08-02T13:45:00.6546267+08:00;True|2023-08-01T15:26:25.0389689+08:00;True|2023-08-01T14:08:10.9121758+08:00;True|2023-07-31T13:35:10.1220213+08:00;True|2023-07-31T09:20:11.2607880+08:00;True|2023-07-28T13:44:35.4317136+08:00;True|2023-07-27T10:40:46.5453757+08:00;True|2023-07-27T09:16:57.7421426+08:00;True|2023-07-26T17:10:56.0976913+08:00;True|2023-07-26T12:01:33.5766311+08:00;True|2023-07-25T18:07:38.5726960+08:00;True|2023-07-25T17:42:39.3625959+08:00;True|2023-07-25T17:04:09.8723273+08:00;True|2023-07-25T16:28:14.1819137+08:00;True|2023-07-24T14:11:28.2113907+08:00;True|2023-07-24T12:05:09.0376032+08:00;True|2023-07-24T09:36:39.6541522+08:00;True|2023-07-19T12:25:56.9887829+08:00;True|2023-07-17T13:00:04.0123733+08:00;True|2023-07-13T12:13:14.7927242+08:00;True|2023-07-13T11:46:24.1368807+08:00;True|2023-07-13T10:24:33.1684712+08:00;True|2023-06-26T11:38:29.6648988+08:00;True|2023-06-21T16:17:40.6226554+08:00;True|2023-06-21T13:30:18.8163322+08:00;True|2023-06-21T13:19:43.9290154+08:00;True|2023-06-21T11:35:28.3376504+08:00;</History>
    <History>True|2023-10-21T02:11:24.4036360Z;False|2023-10-21T10:06:43.5864769+08:00;True|2023-10-20T19:00:14.6068195+08:00;True|2023-10-20T18:36:10.4611497+08:00;True|2023-10-19T09:56:48.5150728+08:00;True|2023-10-18T14:59:01.0684811+08:00;True|2023-10-17T16:12:58.7322358+08:00;True|2023-10-07T12:25:54.8757007+08:00;True|2023-10-07T12:13:15.0880517+08:00;True|2023-10-07T12:12:39.1803333+08:00;True|2023-10-07T12:02:22.4047422+08:00;True|2023-09-26T15:07:05.5606369+08:00;True|2023-09-25T16:53:00.5107971+08:00;True|2023-09-25T16:49:56.9145285+08:00;True|2023-09-25T14:28:29.4414039+08:00;True|2023-09-25T11:19:00.8735501+08:00;True|2023-09-21T13:54:19.1780900+08:00;True|2023-09-21T13:16:00.2957740+08:00;True|2023-09-21T11:28:36.3091944+08:00;True|2023-09-21T11:18:20.1060798+08:00;True|2023-09-13T16:00:49.4080881+08:00;True|2023-09-11T13:53:38.8582724+08:00;True|2023-09-01T10:32:37.4923361+08:00;True|2023-08-30T16:52:43.1952609+08:00;True|2023-08-30T13:41:35.0430741+08:00;True|2023-08-28T14:53:24.2454140+08:00;True|2023-08-28T13:50:55.9362462+08:00;True|2023-08-28T10:00:17.0366755+08:00;True|2023-08-25T15:41:23.8727088+08:00;True|2023-08-24T16:47:54.1391198+08:00;True|2023-08-24T16:40:29.0473991+08:00;True|2023-08-22T15:02:27.5312918+08:00;True|2023-08-22T11:18:43.6918732+08:00;True|2023-08-21T15:10:42.9223597+08:00;True|2023-08-21T14:21:08.1887373+08:00;True|2023-08-21T11:56:07.5304445+08:00;True|2023-08-18T16:57:57.0506312+08:00;True|2023-08-18T13:51:54.9145260+08:00;True|2023-08-17T14:52:44.6557301+08:00;True|2023-08-17T14:15:19.8255432+08:00;True|2023-08-17T14:03:01.1586247+08:00;True|2023-08-17T11:46:51.6685579+08:00;True|2023-08-16T11:12:27.1684542+08:00;True|2023-08-15T16:59:09.4901359+08:00;True|2023-08-10T14:08:04.8032876+08:00;True|2023-08-10T13:55:01.9698355+08:00;True|2023-08-10T10:43:44.0440039+08:00;True|2023-08-10T10:12:03.9359243+08:00;True|2023-08-09T15:07:46.6906781+08:00;True|2023-08-09T13:12:06.7912004+08:00;True|2023-08-09T10:23:24.5864225+08:00;True|2023-08-08T17:38:10.4753030+08:00;True|2023-08-08T12:56:08.9783211+08:00;True|2023-08-06T09:18:33.3703637+08:00;True|2023-08-03T11:01:58.9814864+08:00;True|2023-08-03T10:26:08.4681748+08:00;True|2023-08-02T20:33:35.0425049+08:00;True|2023-08-02T17:31:18.4675932+08:00;True|2023-08-02T16:04:16.8761862+08:00;True|2023-08-02T13:48:38.9129192+08:00;True|2023-08-02T13:45:00.6546267+08:00;True|2023-08-01T15:26:25.0389689+08:00;True|2023-08-01T14:08:10.9121758+08:00;True|2023-07-31T13:35:10.1220213+08:00;True|2023-07-31T09:20:11.2607880+08:00;True|2023-07-28T13:44:35.4317136+08:00;True|2023-07-27T10:40:46.5453757+08:00;True|2023-07-27T09:16:57.7421426+08:00;True|2023-07-26T17:10:56.0976913+08:00;True|2023-07-26T12:01:33.5766311+08:00;True|2023-07-25T18:07:38.5726960+08:00;True|2023-07-25T17:42:39.3625959+08:00;True|2023-07-25T17:04:09.8723273+08:00;True|2023-07-25T16:28:14.1819137+08:00;True|2023-07-24T14:11:28.2113907+08:00;True|2023-07-24T12:05:09.0376032+08:00;True|2023-07-24T09:36:39.6541522+08:00;True|2023-07-19T12:25:56.9887829+08:00;True|2023-07-17T13:00:04.0123733+08:00;True|2023-07-13T12:13:14.7927242+08:00;True|2023-07-13T11:46:24.1368807+08:00;True|2023-07-13T10:24:33.1684712+08:00;True|2023-06-26T11:38:29.6648988+08:00;True|2023-06-21T16:17:40.6226554+08:00;True|2023-06-21T13:30:18.8163322+08:00;True|2023-06-21T13:19:43.9290154+08:00;True|2023-06-21T11:35:28.3376504+08:00;</History>
  </PropertyGroup>
</Project>
IStation.Service.SqiAirp/1-entity/03-certificate/Certificate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
namespace IStation.Entity
{
    /// <summary>
    /// è¯ä¹¦
    /// </summary>
    [SugarTable("certificate")]
    public class Certificate : Yw.Entity.BaseEntity, Yw.Entity.ISorter, System.ICloneable
    {
        /// <summary>
        ///
        /// </summary>
        public Certificate() { }
        /// <summary>
        ///
        /// </summary>
        public Certificate(Certificate rhs) : base(rhs)
        {
            this.ManufacturerName = rhs.ManufacturerName;
            this.UseName = rhs.UseName;
            this.CertificateNO = rhs.CertificateNO;
            this.AirpSiteName = rhs.AirpSiteName;
            this.MainEquipmentModels = rhs.MainEquipmentModels;
            this.EtaLevel = rhs.EtaLevel;
            this.TestingUnitName = rhs.TestingUnitName;
            this.IssuingUnitName = rhs.IssuingUnitName;
            this.IssuanceDay = rhs.IssuanceDay;
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// ç”Ÿäº§ä¼ä¸šåç§°
        /// </summary>
        public string ManufacturerName { get; set; }
        /// <summary>
        /// ç”¨æˆ·åç§°
        /// </summary>
        public string UseName { get; set; }
        /// <summary>
        /// è¯ä¹¦ç¼–号
        /// </summary>
        public string CertificateNO { get; set; }
        /// <summary>
        /// åŽ‹ç¼©ç©ºæ°”ç«™åç§°
        /// </summary>
        public string AirpSiteName { get; set; }
        /// <summary>
        /// ä¸»è¦è®¾å¤‡åž‹å·
        /// </summary>
        public string MainEquipmentModels { get; set; }
        /// <summary>
        /// èƒ½æ•ˆç­‰çº§
        /// </summary>
        public string EtaLevel { get; set; }
        /// <summary>
        /// æ£€æµ‹å•位名称
        /// </summary>
        public string TestingUnitName { get; set; }
        /// <summary>
        /// å‘证单位名称
        /// </summary>
        public string IssuingUnitName { get; set; }
        /// <summary>
        /// å‘证日期
        /// </summary>
        public DateTime IssuanceDay { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        ///
        /// </summary>
        public Certificate Clone()
        {
            return (Certificate)this.MemberwiseClone();
        }
        object ICloneable.Clone()
        {
            return this.MemberwiseClone();
        }
    }
}
IStation.Service.SqiAirp/2-model/03-certificate/Certificate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
namespace IStation.Model
{
    /// <summary>
    /// è¯ä¹¦
    /// </summary>
    public class Certificate : Yw.Model.BaseModel, System.ICloneable
    {
        /// <summary>
        ///
        /// </summary>
        public Certificate() { }
        /// <summary>
        ///
        /// </summary>
        public Certificate(Certificate rhs) : base(rhs)
        {
            this.ManufacturerName = rhs.ManufacturerName;
            this.UseName = rhs.UseName;
            this.CertificateNO = rhs.CertificateNO;
            this.AirpSiteName = rhs.AirpSiteName;
            this.MainEquipmentModels = rhs.MainEquipmentModels;
            this.EtaLevel = rhs.EtaLevel;
            this.TestingUnitName = rhs.TestingUnitName;
            this.IssuingUnitName = rhs.IssuingUnitName;
            this.IssuanceDay = rhs.IssuanceDay;
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
        }
        /// <summary>
        ///
        /// </summary>
        public void Reset(Certificate rhs)
        {
            this.ID = rhs.ID;
            this.ManufacturerName = rhs.ManufacturerName;
            this.UseName = rhs.UseName;
            this.CertificateNO = rhs.CertificateNO;
            this.AirpSiteName = rhs.AirpSiteName;
            this.MainEquipmentModels = rhs.MainEquipmentModels;
            this.EtaLevel = rhs.EtaLevel;
            this.TestingUnitName = rhs.TestingUnitName;
            this.IssuingUnitName = rhs.IssuingUnitName;
            this.IssuanceDay = rhs.IssuanceDay;
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
        }
        /// <summary>
        /// ç”Ÿäº§ä¼ä¸šåç§°
        /// </summary>
        public string ManufacturerName { get; set; }
        /// <summary>
        /// ç”¨æˆ·åç§°
        /// </summary>
        public string UseName { get; set; }
        /// <summary>
        /// è¯ä¹¦ç¼–号
        /// </summary>
        public string CertificateNO { get; set; }
        /// <summary>
        /// åŽ‹ç¼©ç©ºæ°”ç«™åç§°
        /// </summary>
        public string AirpSiteName { get; set; }
        /// <summary>
        /// ä¸»è¦è®¾å¤‡åž‹å·
        /// </summary>
        public string MainEquipmentModels { get; set; }
        /// <summary>
        /// èƒ½æ•ˆç­‰çº§
        /// </summary>
        public string EtaLevel { get; set; }
        /// <summary>
        /// æ£€æµ‹å•位名称
        /// </summary>
        public string TestingUnitName { get; set; }
        /// <summary>
        /// å‘证单位名称
        /// </summary>
        public string IssuingUnitName { get; set; }
        /// <summary>
        /// å‘证日期
        /// </summary>
        public DateTime IssuanceDay { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        ///
        /// </summary>
        public Certificate Clone()
        {
            return new Certificate(this);
        }
        object ICloneable.Clone()
        {
            return this.Clone();
        }
    }
}
IStation.Service.SqiAirp/4-dal/03-certificate/Certificate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
namespace IStation.DAL
{
    /// <summary>
    /// è¯ä¹¦
    /// </summary>
    public partial class Certificate : Yw.DAL.BaseDAL_Sorter<Entity.Certificate>
    {
        /// <summary>
        ///
        /// </summary>
        public override ConnectionConfig ConnectionConfig
        {
            get { return ConfigHelper.DefaultConnectionConfig; }
        }
    }
}
IStation.Service.SqiAirp/5-service/03-certificate/Cache/CertificateCacheHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
namespace IStation.Service
{
    /// <summary>
    /// Certificate
    /// ç¼“存辅助类
    /// </summary>
    internal class CertificateCacheHelper
    {
        private const string _contentKey = "CertificateList";
        private static string GetCacheKey()
        {
            return CacheHelper.GetCacheKey(_contentKey);
        }
        /// <summary>
        /// è®¾ç½®ç¼“å­˜
        /// </summary>
        public static void Set(List<Model.Certificate> list, int Minites = 30, int RandomSeconds = 0)
        {
            var cacheKey = GetCacheKey();
            MemoryCacheHelper.Set(cacheKey, list, Minites * 60 + RandomSeconds);
        }
        /// <summary>
        /// èŽ·å–ç¼“å­˜
        /// </summary>
        /// <returns></returns>
        public static List<Model.Certificate> Get()
        {
            var cacheKey = GetCacheKey();
            return MemoryCacheHelper.Get<List<Model.Certificate>>(cacheKey);
        }
        /// <summary>
        /// èŽ·å–è®¾ç½®ç¼“å­˜
        /// </summary>
        public static List<Model.Certificate> GetSet(Func<List<Model.Certificate>> func, int Minites = 30, int RandomSeconds = 0)
        {
            var cacheKey = GetCacheKey();
            return MemoryCacheHelper.GetSet(cacheKey, func, Minites * 60 + RandomSeconds);
        }
        /// <summary>
        /// ç§»é™¤ç¼“å­˜
        /// </summary>
        public static void Remove()
        {
            var cacheKey = GetCacheKey();
            MemoryCacheHelper.Remove(cacheKey);
        }
    }
}
IStation.Service.SqiAirp/5-service/03-certificate/Certificate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,251 @@
namespace IStation.Service
{
    /// <summary>
    ///  è¯ä¹¦
    /// </summary>
    public partial class Certificate
    {
        #region Cache
        //获取缓存
        private static List<Model.Certificate> GetCache()
        {
            var all = CertificateCacheHelper.GetSet(() =>
            {
                var dal = new DAL.Certificate();
                var entity_list = dal.GetAll();
                var model_list = Entity2Models(entity_list);
                if (model_list == null)
                {
                    model_list = new List<Model.Certificate>();
                }
                return model_list;
            }, ConfigHelper.CacheKeepTime, ConfigHelper.CacheRandomTime);
            return all;
        }
        //通过 ID æ›´æ–°ç¼“å­˜
        private static void UpdateCache(long ID)
        {
            var dal = new DAL.Certificate();
            var entity_ds = dal.GetByID(ID);
            var model_ds = Entity2Model(entity_ds);
            var all = GetCache();
            var model = all.Find(x => x.ID == ID);
            if (model == null)
            {
                all.Add(model_ds);
            }
            else
            {
                model.Reset(model_ds);
            }
        }
        //通过 Ids æ›´æ–°ç¼“å­˜
        private static void UpdateCache(List<long> Ids)
        {
            if (Ids == null || Ids.Count < 1)
                return;
            var dal = new DAL.Certificate();
            var entity_list = dal.GetByIds(Ids);
            var model_list = Entity2Models(entity_list);
            var all = GetCache();
            all.RemoveAll(x => Ids.Contains(x.ID));
            if (model_list != null && model_list.Count > 0)
            {
                all.AddRange(model_list);
            }
        }
        //移除缓存
        private static void RemoveCache(long ID)
        {
            var all = GetCache();
            all.RemoveAll(x => x.ID == ID);
        }
        #endregion
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        public List<Model.Certificate> GetAll()
        {
            var all = GetCache();
            var list = all.OrderBy(x => x.SortCode).ToList();
            return list;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        public Model.Certificate GetByID(long ID)
        {
            var all = GetAll();
            var model = all.Find(x => x.ID == ID);
            return model;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        public List<Model.Certificate> GetByIds(List<long> Ids)
        {
            if (Ids == null || Ids.Count < 1)
                return default;
            var all = GetAll();
            var list = all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.SortCode).ToList();
            return list;
        }
        /// <summary>
        /// èŽ·å–æœ€å¤§æŽ’åºç 
        /// </summary>
        public int GetMaxSortCode()
        {
            var all = GetAll();
            if (all.Count < 1)
                return 0;
            return all.Max(x => x.SortCode);
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ·»åŠ ä¸€æ¡
        /// </summary>
        public long Insert(Model.Certificate model)
        {
            if (model == null)
                return default;
            var entity = Model2Entity(model);
            var dal = new DAL.Certificate();
            var id = dal.Insert(entity);
            if (id > 0)
            {
                UpdateCache(id);
            }
            return id;
        }
        /// <summary>
        /// æ‰¹é‡æ’å…¥
        /// </summary>
        public bool Inserts(List<Model.Certificate> list)
        {
            if (list == null || list.Count < 1)
                return false;
            var dal = new DAL.Certificate();
            var entity_list = Model2Entities(list);
            var ids = dal.InsertsR(entity_list);
            if (ids != null && ids.Count > 0)
            {
                UpdateCache(ids);
                return true;
            }
            return false;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        public bool Update(Model.Certificate model)
        {
            if (model == null)
                return false;
            var entity = Model2Entity(model);
            var dal = new DAL.Certificate();
            var bol = dal.Update(entity);
            if (bol)
            {
                UpdateCache(model.ID);
            }
            return bol;
        }
        /// <summary>
        /// æ‰¹é‡æ›´æ–°
        /// </summary>
        public bool Updates(List<Model.Certificate> list)
        {
            if (list == null || list.Count < 1)
                return false;
            var entity_list = Model2Entities(list.ToList());
            var dal = new DAL.Certificate();
            var bol = dal.Updates(entity_list);
            if (bol)
            {
                UpdateCache(list.Select(x => x.ID).ToList());
            }
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序码
        /// </summary>
        public bool UpdateSortCode(long ID, int SortCode)
        {
            if (ID < 1)
                return default;
            var dal = new DAL.Certificate();
            var bol = dal.UpdateSortCode(ID, SortCode);
            if (bol)
            {
                UpdateCache(ID);
            }
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序
        /// </summary>
        public bool UpdateSorter(List<Yw.Model.Sorter> sorters)
        {
            if (sorters == null || sorters.Count < 1)
                return default;
            var dal = new DAL.Certificate();
            var bol = dal.UpdateSorter(sorters.ToEntityList());
            if (bol)
            {
                UpdateCache(sorters.Select(x => x.ID).ToList());
            }
            return bol;
        }
        #endregion
        #region Delete
        /// <summary>
        /// é€šè¿‡ ID åˆ é™¤
        /// </summary>
        public bool DeleteByID(long ID, out string Msg)
        {
            Msg = string.Empty;
            var dal = new DAL.Certificate();
            var bol = dal.DeleteByID(ID);
            if (bol)
            {
                RemoveCache(ID);
            }
            return bol;
        }
        #endregion
    }
}
IStation.Service.SqiAirp/5-service/03-certificate/Certificate_Instance.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
namespace IStation.Service
{
    public partial class Certificate
    {
        //Entity to GetModel
        private static Model.Certificate Entity2Model(Entity.Certificate entity)
        {
            if (entity == null)
                return default;
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Entity.Certificate, Model.Certificate>()
            ).CreateMapper();
            var model = mapper.Map<Entity.Certificate, Model.Certificate>(entity);
            return model;
        }
        //Entities to GetModels
        private static List<Model.Certificate> Entity2Models(List<Entity.Certificate> entities)
        {
            if (entities == null || entities.Count() < 1)
                return default;
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Entity.Certificate, Model.Certificate>()
            ).CreateMapper();
            var models = mapper.Map<List<Entity.Certificate>, List<Model.Certificate>>(entities);
            return models;
        }
        //Model to Entity
        private static Entity.Certificate Model2Entity(Model.Certificate model)
        {
            if (model == null)
                return default;
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Model.Certificate, Entity.Certificate>()
            ).CreateMapper();
            var entity = mapper.Map<Model.Certificate, Entity.Certificate>(model);
            return entity;
        }
        //Models to Entities
        private static List<Entity.Certificate> Model2Entities(List<Model.Certificate> models)
        {
            if (models == null || models.Count < 1)
                return default;
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Model.Certificate, Entity.Certificate>()
            ).CreateMapper();
            var entities = mapper.Map<List<Model.Certificate>, List<Entity.Certificate>>(models);
            return entities;
        }
        //Model to Entity
        private static void Model2Entity(Model.Certificate model, Entity.Certificate entity)
        {
            if (model == null || entity == null)
                return;
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<Model.Certificate, Entity.Certificate>()
             ).CreateMapper();
            mapper.Map(model, entity);
        }
    }
}