Browse Source

LIS结果导入

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
21dfad4fc8
  1. 10
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs
  2. 2
      src/Shentun.ColumnReferencePlugIns/ChargeRequestAsbitemForPlugIns.cs
  3. 32
      src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs
  4. 20
      src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs

10
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs

@ -180,7 +180,7 @@ namespace Shentun.Peis.PlugIns.Gem
} }
} }
await SetAppChargeRequestFlagAsync(input.ChargeRequestId, chargeRequestForPlugIns.ConcurrencyStamp,ChargeRequestFlag.AlreadyCancelCharge);
await SetAppChargeRequestFlagAsync(chargeRequestForPlugIns, ChargeRequestFlag.AlreadyCancelCharge);
return new ChargeRequestPlugInsOut(); return new ChargeRequestPlugInsOut();
} }
@ -225,7 +225,7 @@ namespace Shentun.Peis.PlugIns.Gem
} }
} }
await SetAppChargeRequestFlagAsync(input.ChargeRequestId, chargeRequestForPlugIns.ConcurrencyStamp,ChargeRequestFlag.RefundRequest);
await SetAppChargeRequestFlagAsync(chargeRequestForPlugIns, ChargeRequestFlag.RefundRequest);
return new ChargeRequestPlugInsOut(); return new ChargeRequestPlugInsOut();
} }
public override Task DoWork() public override Task DoWork()
@ -267,18 +267,18 @@ namespace Shentun.Peis.PlugIns.Gem
if (payStatus == "1" && chargeRequest.ChargeRequestFlag != ChargeRequestFlag.RefundRequest) if (payStatus == "1" && chargeRequest.ChargeRequestFlag != ChargeRequestFlag.RefundRequest)
{ {
charRequstFlag = ChargeRequestFlag.AlreadyCharge; charRequstFlag = ChargeRequestFlag.AlreadyCharge;
SetAppChargeRequestFlagAsync(chargeRequest.ChargeRequestId, chargeRequest.ConcurrencyStamp, charRequstFlag);
SetAppChargeRequestFlagAsync(chargeRequest, charRequstFlag);
} }
else if (payStatus == "2") else if (payStatus == "2")
{ {
charRequstFlag = ChargeRequestFlag.AlreadyCancelCharge; charRequstFlag = ChargeRequestFlag.AlreadyCancelCharge;
SetAppChargeRequestFlagAsync(chargeRequest.ChargeRequestId, chargeRequest.ConcurrencyStamp,charRequstFlag);
SetAppChargeRequestFlagAsync(chargeRequest, charRequstFlag);
} }
else if (payStatus == "3") else if (payStatus == "3")
{ {
charRequstFlag = ChargeRequestFlag.AlreadyRefund; charRequstFlag = ChargeRequestFlag.AlreadyRefund;
SetAppChargeRequestFlagAsync(chargeRequest.ChargeRequestId, chargeRequest.ConcurrencyStamp,charRequstFlag);
SetAppChargeRequestFlagAsync(chargeRequest, charRequstFlag);
} }
else else
{ {

2
src/Shentun.ColumnReferencePlugIns/ChargeRequestAsbitemForPlugIns.cs

@ -12,5 +12,7 @@ namespace Shentun.Peis.PlugIns
public string AsbitemName { get; set; } = string.Empty; public string AsbitemName { get; set; } = string.Empty;
public string ThirdAsbitemCode { get; set; } = string.Empty; public string ThirdAsbitemCode { get; set; } = string.Empty;
public decimal Charges { get; set; } public decimal Charges { get; set; }
public string ConcurrencyStamp { get; set; }
} }
} }

32
src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs

@ -89,7 +89,8 @@ where patient.id = patient_register.patient_id and
sql = @" sql = @"
SELECT register_check_asbitem.asbitem_id, SELECT register_check_asbitem.asbitem_id,
asbitem.display_name as asbitem_name, asbitem.display_name as asbitem_name,
register_check_asbitem.amount * register_check_asbitem.charge_price as charges
register_check_asbitem.amount * register_check_asbitem.charge_price as charges,
register_check_asbitem.concurrency_stamp
from register_check from register_check
JOIN register_check_asbitem on register_check.id = register_check_asbitem.register_check_id JOIN register_check_asbitem on register_check.id = register_check_asbitem.register_check_id
JOIN charge_request on register_check_asbitem.charge_request_id = charge_request.id JOIN charge_request on register_check_asbitem.charge_request_id = charge_request.id
@ -155,35 +156,50 @@ where patient.id = patient_register.patient_id and
// } // }
//} //}
public async Task SetAppChargeRequestFlagAsync(Guid chargeRequestId, string concurrencyStamp, char chargeRequestFlag)
public async Task SetAppChargeRequestFlagAsync(ChargeRequestForPlugIns chargeRequestForPlugIns,
char chargeRequestFlag)
{ {
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{ {
//加ConcurrencyStamp,以防止并发
string sql; string sql;
sql = @" update charge_request set charge_request_flag =" + chargeRequestFlag + sql = @" update charge_request set charge_request_flag =" + chargeRequestFlag +
@" where id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp @" where id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
"; ";
conn.Execute(sql, conn.Execute(sql,
new { ChargeRequestId = chargeRequestId,
ConcurrencyStamp = concurrencyStamp
new { ChargeRequestId = chargeRequestForPlugIns.ChargeRequestId,
ConcurrencyStamp = chargeRequestForPlugIns.ConcurrencyStamp
}); });
foreach(var chargeRequestAsbitem in chargeRequestForPlugIns.Asbitems)
{
if (chargeRequestFlag == ChargeRequestFlag.AlreadyCharge) if (chargeRequestFlag == ChargeRequestFlag.AlreadyCharge)
{ {
sql = @" update register_check_asbitem set is_charge = 'Y' where charge_request_id = @ChargeRequestId
sql = @" update register_check_asbitem set is_charge = 'Y'
where charge_request_id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
"; ";
conn.Execute(sql, conn.Execute(sql,
new { ChargeRequestId = chargeRequestId });
new { ChargeRequestId = chargeRequestForPlugIns.ChargeRequestId,
ConcurrencyStamp = chargeRequestAsbitem.ConcurrencyStamp
});
} }
else if (chargeRequestFlag == ChargeRequestFlag.AlreadyRefund) else if (chargeRequestFlag == ChargeRequestFlag.AlreadyRefund)
{ {
sql = @" update register_check_asbitem set is_charge = 'N' where charge_request_id = @ChargeRequestId
sql = @" update register_check_asbitem set is_charge = 'N'
where charge_request_id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
"; ";
conn.Execute(sql, conn.Execute(sql,
new { ChargeRequestId = chargeRequestId });
new
{
ChargeRequestId = chargeRequestForPlugIns.ChargeRequestId,
ConcurrencyStamp = chargeRequestAsbitem.ConcurrencyStamp
});
}
} }
} }
} }

20
src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs

@ -262,7 +262,7 @@ namespace Shentun.Peis.ImportLisResults
if (_referenceRangeManager.IsNumberReferenceRange(referenceRangeValue)) if (_referenceRangeManager.IsNumberReferenceRange(referenceRangeValue))
{ {
item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number; item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number;
await _itemRepository.UpdateAsync(item, true);
await _itemRepository.UpdateAsync(item);
referenceRange = referenceRanges.Where(o => o.ForSexId == sexId referenceRange = referenceRanges.Where(o => o.ForSexId == sexId
&& age >= o.AgeLowerLimit && age <= o.AgeUpperLimit && age >= o.AgeLowerLimit && age <= o.AgeUpperLimit
@ -271,7 +271,7 @@ namespace Shentun.Peis.ImportLisResults
{ {
referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number; referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number;
referenceRange.ReferenceRangeValue = referenceRangeValue; referenceRange.ReferenceRangeValue = referenceRangeValue;
await _referenceRangeRepository.UpdateAsync(referenceRange, true);
await _referenceRangeRepository.UpdateAsync(referenceRange);
return; return;
} }
@ -282,7 +282,7 @@ namespace Shentun.Peis.ImportLisResults
{ {
referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number; referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number;
referenceRange.ReferenceRangeValue = referenceRangeValue; referenceRange.ReferenceRangeValue = referenceRangeValue;
await _referenceRangeRepository.UpdateAsync(referenceRange, true);
await _referenceRangeRepository.UpdateAsync(referenceRange);
return; return;
} }
referenceRange = new ReferenceRange() referenceRange = new ReferenceRange()
@ -295,18 +295,19 @@ namespace Shentun.Peis.ImportLisResults
ForSexId = ForSexFlag.All ForSexId = ForSexFlag.All
}; };
referenceRange = _referenceRangeManager.Create(referenceRange); referenceRange = _referenceRangeManager.Create(referenceRange);
await _referenceRangeRepository.InsertAsync(referenceRange, true);
await _referenceRangeRepository.InsertAsync(referenceRange);
referenceRanges.Add(referenceRange);
return; return;
} }
item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character; item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character;
await _itemRepository.UpdateAsync(item, true);
await _itemRepository.UpdateAsync(item);
referenceRange = referenceRanges.Where(o => o.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Character).FirstOrDefault(); referenceRange = referenceRanges.Where(o => o.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Character).FirstOrDefault();
if (referenceRange != null) if (referenceRange != null)
{ {
referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character; referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character;
referenceRange.ReferenceRangeValue = referenceRangeValue; referenceRange.ReferenceRangeValue = referenceRangeValue;
await _referenceRangeRepository.UpdateAsync(referenceRange, true);
await _referenceRangeRepository.UpdateAsync(referenceRange);
return; return;
} }
@ -320,7 +321,8 @@ namespace Shentun.Peis.ImportLisResults
ForSexId = ForSexFlag.All ForSexId = ForSexFlag.All
}; };
referenceRange = _referenceRangeManager.Create(referenceRange); referenceRange = _referenceRangeManager.Create(referenceRange);
await _referenceRangeRepository.InsertAsync(referenceRange, true);
await _referenceRangeRepository.InsertAsync(referenceRange);
referenceRanges.Add(referenceRange);
return; return;
} }
@ -340,7 +342,7 @@ namespace Shentun.Peis.ImportLisResults
return; return;
} }
item.UnitId = unit.Id; item.UnitId = unit.Id;
await _itemRepository.UpdateAsync(item, true);
await _itemRepository.UpdateAsync(item);
return; return;
} }
unit = new Unit() unit = new Unit()
@ -349,7 +351,7 @@ namespace Shentun.Peis.ImportLisResults
}; };
unit = await _unitManager.CreateAsync(unit); unit = await _unitManager.CreateAsync(unit);
await _unitRepository.InsertAsync(unit, true);
await _unitRepository.InsertAsync(unit);
_units.Add(unit); _units.Add(unit);
} }
} }

Loading…
Cancel
Save