From 49b296775256e07ac3f9c217e6349916fa3bfb4a Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Mon, 24 Jun 2024 00:05:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E8=B4=B9=E4=BB=B7=E6=A0=BC=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyncAsbitemPrice/AsbitemForSyncAsbitem.cs | 127 ++++++++++++++++++ .../AsbitemFromSyncAsbitemInterface.cs | 17 +++ .../SyncAsbitemPricePlugInsBase.cs | 84 ++++++++++++ .../SyncAsbitemPricePlugInsDbBase.cs | 56 ++++++++ 4 files changed, 284 insertions(+) create mode 100644 src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemForSyncAsbitem.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemFromSyncAsbitemInterface.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsBase.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsDbBase.cs diff --git a/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemForSyncAsbitem.cs b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemForSyncAsbitem.cs new file mode 100644 index 0000000..69992b6 --- /dev/null +++ b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemForSyncAsbitem.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.Peis.PlugIns.SyncAsbitemPrice +{ + public class AsbitemForSyncAsbitem + { + public Guid Id { get; set; } + /// + /// 名称 + /// + public string DisplayName { get; set; } + + /// + /// 简称 + /// + public string ShortName { get; set; } + + /// + /// 适用性别,M-男,F-女,A-全部 + /// + public char ForSexId { get; set; } + /// + /// 婚姻状况 + /// + public char MaritalStatusId { get; set; } + + /// + /// 项目类别 + /// + public Guid ItemTypeId { get; set; } + + + /// + /// 价格 + /// + public decimal Price { get; set; } + + + /// + /// 仪器类别 + /// + public Guid? DeviceTypeId { get; set; } + + + ///// + ///// 发票类别 + ///// + //public Guid InvoiceItemTypeId { get; set; } + + + /// + /// 项目结果合并 + /// + public char IsItemResultMerger { get; set; } + + + /// + /// 餐前项目 + /// + public char IsBeforeEat { get; set; } + + + /// + /// 临床意义 + /// + public string ClinicalMeaning { get; set; } + + + /// + /// 默认结果 + /// + public string DefaultResult { get; set; } + + + /// + /// 候诊时间 + /// + public decimal QueueTime { get; set; } + + + /// + /// 启用诊断函数 + /// + public char IsDiagnosisFunction { get; set; } + + + /// + /// 诊断函数 + /// + public string DiagnosisFunction { get; set; } + + + /// + /// 诊断函数处理完毕后继续处理 + /// + public char IsContinueProcess { get; set; } + + + /// + /// 体检报告图片旋转90° + /// + public char IsPictureRotate { get; set; } + + + /// + /// 是检查项目 + /// + public char IsCheck { get; set; } + + + /// + /// 是启用 + /// + public char IsActive { get; set; } + + public string SimpleCode { get; set; } + + + public int DisplayOrder { get; set; } + + public string ConcurrencyStamp { get; set; } + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemFromSyncAsbitemInterface.cs b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemFromSyncAsbitemInterface.cs new file mode 100644 index 0000000..07b5d31 --- /dev/null +++ b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/AsbitemFromSyncAsbitemInterface.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.Peis.PlugIns.SyncAsbitemPrice +{ + public class AsbitemFromSyncAsbitemInterface + { + public string AsbitemId { get; set; } + public string AsbitemName { get; set; } + + public decimal? Price { get; set; } + + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsBase.cs new file mode 100644 index 0000000..ca8500c --- /dev/null +++ b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsBase.cs @@ -0,0 +1,84 @@ +using Dapper; +using Npgsql; +using Shentun.Peis.Asbitems; +using Shentun.Peis.Enums; +using Shentun.Peis.PlugIns.ChargeRequests; +using Shentun.Peis.PlugIns.LisRequests; +using System; +using System.Collections.Generic; +using System.Data.Common; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.Peis.PlugIns.SyncAsbitemPrice +{ + public class SyncAsbitemPricePlugInsBase : ThirdPlugInsBase + { + public SyncAsbitemPricePlugInsBase(Guid thirdInterfaceId) : base(thirdInterfaceId) + { + + } + + public virtual async Task SyncAsbitemPriceAsync() + { + + } + + public async Task> GetAsbitemsAsync() + { + using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) + { + string sql; + sql = @" select * from asbitem + "; + var asbitems = (await conn.QueryAsync(sql + )).ToList(); + + return asbitems; + } + } + + public async Task UpdateAsbitemPriceAsync(AsbitemForSyncAsbitem asbitem) + { + using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) + { + await conn.OpenAsync(); + using (var trans = await conn.BeginTransactionAsync()) + { + try + { + string sql; + sql = @" update asbitem set price = @Price" + + @" where id = @AsbitemId and concurrency_stamp = @ConcurrencyStamp + "; + await conn.ExecuteAsync(sql, + new + { + asbitem.Price, + asbitem.Id, + asbitem.ConcurrencyStamp + }, trans); + await trans.CommitAsync(); + } + catch (Exception ex) + { + await trans.RollbackAsync(); + throw ex; + } + + + + } + } + + + } + + public override Task DoWork() + { + SyncAsbitemPriceAsync().Wait(); + return Task.CompletedTask; + } + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsDbBase.cs b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsDbBase.cs new file mode 100644 index 0000000..8f6f848 --- /dev/null +++ b/src/Shentun.ColumnReferencePlugIns/SyncAsbitemPrice/SyncAsbitemPricePlugInsDbBase.cs @@ -0,0 +1,56 @@ +using Dapper; +using Npgsql; +using Org.BouncyCastle.Asn1.Ocsp; +using Shentun.Peis.Asbitems; +using Shentun.Peis.PlugIns.ImportLisResults; +using System; +using System.Collections.Generic; +using System.Data.Common; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; + +namespace Shentun.Peis.PlugIns.SyncAsbitemPrice +{ + public class SyncAsbitemPricePlugInsDbBase : SyncAsbitemPricePlugInsBase + { + public SyncAsbitemPricePlugInsDbBase(Guid thirdInterfaceId) : base(thirdInterfaceId) + { + } + + public override async Task SyncAsbitemPriceAsync() + { + if (AsbitemColumnReferenceId == null || AsbitemColumnReferenceId == Guid.Empty) + { + throw new Exception("没有设置组合项目编码对照"); + } + var asbitems = await GetAsbitemsAsync(); + using (DbConnection conn = CreateInterfaceDbConnect()) + { + foreach (var asbItem in asbitems) + { + var interfaceAsbitemId = await GetColumnReferenceInterfaceCodeValuesAsync(AsbitemColumnReferenceId, asbItem.Id.ToString()); + string sql; + sql = InterfaceSql + " where " + InterfaceSqlKeyColumn + " = '" + interfaceAsbitemId + "'"; + var interfaceAsbitems = (await conn.QueryAsync(sql)).ToList(); + if (interfaceAsbitems == null || !interfaceAsbitems.Any()) + { + continue; + } + var interfaceAsbitem = interfaceAsbitems.First(); + if(interfaceAsbitem.Price == null || interfaceAsbitem.Price < 0) + { + continue; + } + asbItem.Price = (decimal)interfaceAsbitem.Price; + await UpdateAsbitemPriceAsync(asbItem); + } + } + + } + + + + } +}