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);
+ }
+ }
+
+ }
+
+
+
+ }
+}