1172 lines
49 KiB
C#
1172 lines
49 KiB
C#
|
|
using LinqToDB;
|
|
using log4net;
|
|
using MasaBlazorApp3.DataAccess.Dao;
|
|
using MasaBlazorApp3.Pages;
|
|
using MasaBlazorApp3.Pojo;
|
|
using MasaBlazorApp3.Pojo.Config;
|
|
using MasaBlazorApp3.Pojo.Vo;
|
|
using MasaBlazorApp3.Port;
|
|
using Microsoft.Extensions.Options;
|
|
using Mysqlx.Crud;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace MasaBlazorApp3.DataAccess.Impl
|
|
{
|
|
public class ChannelListDao : IChannelListDao
|
|
{
|
|
|
|
private AppDataConnection _connection;
|
|
private readonly SettingConfig _setting;
|
|
private GlobalStateService _globalStateService;
|
|
private readonly PortUtil _portUtil;
|
|
|
|
private readonly ILog logger = LogManager.GetLogger(typeof(ChannelListDao));
|
|
|
|
public ChannelListDao(AppDataConnection connection, IOptions<SettingConfig> setting, GlobalStateService globalStateService, PortUtil portUtil)
|
|
{
|
|
_globalStateService = globalStateService;
|
|
_connection = connection;
|
|
_setting = setting.Value;
|
|
_portUtil = portUtil;
|
|
}
|
|
|
|
public async Task<PageData<ChannelStock>> GetAllChannelList(int DrawerType, string drugName, int? take, int? skip)
|
|
{
|
|
|
|
var query = _connection.ChannelStock.AsQueryable();
|
|
|
|
if (DrawerType != 0)
|
|
{
|
|
query = query.Where(cl => cl.DrawerType == DrawerType);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(drugName))
|
|
{
|
|
query = query.Where(cl => cl.Drug.DrugName.Equals(drugName));
|
|
}
|
|
|
|
//query = query.Where(cl => !String.IsNullOrEmpty(cl.DrugId));
|
|
query = query.Where(cl => cl.MachineId == _setting.machineId);
|
|
|
|
|
|
int pagedData = await query.CountAsync();
|
|
|
|
List<ChannelStock> list = await query
|
|
.LoadWith(cl => cl.Drug)
|
|
.LoadWith(cl => cl.Drug.Manus)
|
|
.LoadWith(cl => cl.drugManuNo)
|
|
.OrderBy((cl) => cl.DrawerNo)
|
|
.ThenBy((cl) => cl.ColNo)
|
|
.Skip((int)skip)
|
|
.Take((int)take)
|
|
.ToListAsync();
|
|
|
|
|
|
return new PageData<ChannelStock>()
|
|
{
|
|
|
|
TotalDesserts = pagedData,
|
|
Desserts = list
|
|
};
|
|
}
|
|
|
|
public async Task<List<ChannelStock>> GetChannelStockByDrugId(string DrugId)
|
|
{
|
|
var query = _connection.ChannelStock.AsQueryable();
|
|
|
|
|
|
return await query
|
|
.LoadWith(cs => cs.Drug)
|
|
.InnerJoin(
|
|
_connection.ChannelList.Where(cl => cl.MachineId.Equals(_setting.machineId)).Where(cl => cl.DrawerType == 1),
|
|
(cs, cl) => cs.ListId == cl.Id,
|
|
(cs, cl) => cs
|
|
)
|
|
.Where(cs => cs.DrugId == DrugId)
|
|
.Where(cs => cs.MachineId == _setting.machineId)
|
|
//.Where(cs => cs.Quantity > 0)
|
|
.OrderBy((cs) => cs.EffDate)
|
|
.ThenBy((cs) => cs.DrawerNo)
|
|
.ThenBy((cs) => cs.ColNo)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task<List<ChannelStock>> GetChannelStockByDrawerNo(int DrawerNo, int Quantity = 0)
|
|
{
|
|
var query = _connection.ChannelStock.AsQueryable()
|
|
.LoadWith(cs => cs.Drug)
|
|
.LoadWith(cs => cs.drugManuNo)
|
|
.LoadWith(cs => cs.Drug.Manus)
|
|
.Where(cs => cs.DrawerNo == DrawerNo)
|
|
.Where(cs => cs.DrugId != String.Empty)
|
|
.Where(cs => cs.DrawerType == 1)
|
|
.Where(cs => cs.MachineId == _setting.machineId);
|
|
|
|
if (Quantity > 0)
|
|
{
|
|
query = query.Where(cs => cs.Quantity > 0);
|
|
}
|
|
return await query
|
|
.OrderBy((cs) => cs.DrawerNo)
|
|
.ThenBy((cs) => cs.ColNo)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task<List<ChannelList>> GetChannelListByDrawerNo(int DrawerNo)
|
|
{
|
|
var query = _connection.ChannelList.AsQueryable();
|
|
|
|
|
|
return await query
|
|
.LoadWith(cl => cl.Drug)
|
|
.LoadWith(cl => cl.ChannelStocks.Where(cs => cs.Quantity > 0))
|
|
.Where(cl => cl.DrawerNo == DrawerNo)
|
|
.Where(cl => cl.DrawerType == 1)
|
|
.Where(cl => cl.MachineId == _setting.machineId)
|
|
.OrderBy((cl) => cl.DrawerNo)
|
|
.ThenBy((cl) => cl.ColNo)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task<List<ChannelStock>> GetAllDrugChannelStock()
|
|
{
|
|
var query = _connection.ChannelStock.AsQueryable();
|
|
|
|
|
|
return await query
|
|
.LoadWith(cs => cs.Drug)
|
|
.Where(cs => !String.IsNullOrEmpty(cs.DrugId))
|
|
.Where(cs => cs.DrawerType == 1)
|
|
.Where(cs => cs.MachineId == _setting.machineId)
|
|
.OrderBy((cs) => cs.DrugId)
|
|
.ThenBy((cs) => cs.EffDate)
|
|
.ThenBy((cs) => cs.DrawerNo)
|
|
.ThenBy((cs) => cs.ColNo)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task<List<ChannelList>> GetAllDrugChannelList()
|
|
{
|
|
var query = _connection.ChannelList.AsQueryable();
|
|
|
|
|
|
return await query
|
|
.LoadWith(cl => cl.Drug)
|
|
.LoadWith(cl => cl.ChannelStocks)
|
|
.Where(cl => !String.IsNullOrEmpty(cl.DrugId))
|
|
.Where(cl => cl.DrawerType == 1)
|
|
.Where(cl => cl.MachineId == _setting.machineId)
|
|
.OrderBy((cl) => cl.DrugId)
|
|
.ThenBy((cl) => cl.DrawerNo)
|
|
.ThenBy((cl) => cl.ColNo)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public async Task<bool> DrawerOperationFinish(List<ChannelStock> Stocks, int type = 1)
|
|
{
|
|
try
|
|
{
|
|
_connection.BeginTransaction();
|
|
|
|
string InvoiceId = "DRAWER_" + CurrentTimeMillis();
|
|
var flag = true;
|
|
for (var i = 0; i < Stocks.Count; i++)
|
|
{
|
|
var stock = Stocks[i];
|
|
|
|
//var ManuNo = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.ManuNo : stock.ManuNo;
|
|
//var EffDate = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.EffDate : stock.EffDate;
|
|
var ManuNo = stock.ManuNo;
|
|
var EffDate = stock.EffDate;
|
|
if (!DateTime.TryParse(stock.EffDate, out DateTime dEffDate))
|
|
{
|
|
//效期转换出错
|
|
if (stock.ManuNo != null)
|
|
{
|
|
string[] idate = stock.EffDate.Split('/');
|
|
foreach (string iS in idate)
|
|
{
|
|
if (!string.IsNullOrEmpty(iS.Replace(" ", "").Trim()))
|
|
{
|
|
switch (iS.Replace(" ", "").Trim().Length)
|
|
{
|
|
case 4:
|
|
EffDate = iS.Replace(" ", "").Trim();
|
|
break;
|
|
case 2:
|
|
EffDate += "-" + iS.Replace(" ", "").Trim();
|
|
break;
|
|
case 1:
|
|
EffDate += "-0" + iS.Replace(" ", "").Trim();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
EffDate = dEffDate.ToString("yyyy-MM-dd");
|
|
}
|
|
|
|
// 出入库记录
|
|
int mid = _connection.InsertWithInt32Identity(new MachineRecord()
|
|
{
|
|
MachineId = _setting.machineId,
|
|
DrawerNo = stock.DrawerNo,
|
|
ColNo = stock.ColNo,
|
|
DrugId = stock.DrugId,
|
|
ManuNo = ManuNo,
|
|
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
OperationTime = DateTime.Now,
|
|
Type = type,
|
|
Quantity = type == 1 ? stock.AddQuantity : stock.TakeQuantity,
|
|
Operator = _globalStateService.Operator.Id,
|
|
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
InvoiceId = InvoiceId
|
|
});
|
|
// 更新库存
|
|
var stockQ = _connection.ChannelStock.Where(cs => cs.Id == stock.Id)
|
|
.Set(cs => cs.Quantity, type == 1 ? stock.Quantity + stock.AddQuantity : stock.Quantity - stock.TakeQuantity);
|
|
// 入库时如果库存为0则有可能会修改批次效期进行保存
|
|
if (type == 1 && stock.Quantity == 0 && !stock.drugManuNo.ManuNo.Equals(stock.ManuNo))
|
|
{
|
|
stockQ = stockQ.Set(cs => cs.ManuNo, stock.drugManuNo.ManuNo).Set(cs => cs.EffDate, stock.drugManuNo.EffDate.ToString()).Set(cs => cs.Dmnguid, stock.drugManuNo.Id);
|
|
}
|
|
int r = stockQ.Update();
|
|
// 获取更新完库存之后的药品库存
|
|
List<ChannelStock> list = await _connection.ChannelStock.AsQueryable()
|
|
.InnerJoin(
|
|
_connection.ChannelList.Where(cl => cl.MachineId.Equals(_setting.machineId)).Where(cl => cl.DrawerType == 1),
|
|
(cs, cl) => cs.ListId == cl.Id,
|
|
(cs, cl) => cs
|
|
)
|
|
.Where(cs => cs.DrugId.Equals(stock.DrugId))
|
|
.ToListAsync();
|
|
// 保存账册
|
|
int acid = _connection.InsertWithInt32Identity(new AccountBook()
|
|
{
|
|
MachineId = _setting.machineId,
|
|
DrugId = stock.DrugId,
|
|
ManuNo = ManuNo,
|
|
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
OperationTime = DateTime.Now,
|
|
Type = type,
|
|
OutQuantity = stock.TakeQuantity,
|
|
AddQuantity = stock.AddQuantity,
|
|
Operator = _globalStateService.Operator.Id,
|
|
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
ManuStock = list.Where(it => it.ManuNo == stock.ManuNo).Sum(it => it.Quantity),
|
|
TotalStock = list.Sum(it => it.Quantity),
|
|
InvoiceId = InvoiceId
|
|
});
|
|
if (mid > 0 && r > 0 && acid > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
break;
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
_connection.CommitTransaction();
|
|
}
|
|
else
|
|
{
|
|
_connection.RollbackTransaction();
|
|
}
|
|
return flag;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error($"抽屉{(type == 1 ? "加药" : "取药")}操作完成保存数据库失败,错误:" + ex.Message);
|
|
_connection.RollbackTransaction();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public long CurrentTimeMillis()
|
|
{
|
|
return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
|
|
}
|
|
|
|
public async Task<bool> UnBind(string id)
|
|
{
|
|
var r = await _connection.ChannelStock
|
|
.Where(cs => cs.Id == id)
|
|
.Set(cs => cs.DrugId, String.Empty)
|
|
.Set(cs => cs.Dmnguid, String.Empty)
|
|
.Set(cs => cs.EffDate, String.Empty)
|
|
.Set(cs => cs.ManuNo, String.Empty)
|
|
.UpdateAsync();
|
|
return r > 0;
|
|
}
|
|
|
|
public async Task<bool> Bind(ChannelStock Stock)
|
|
{
|
|
var q = _connection.ChannelStock
|
|
.Where(cs => cs.Id == Stock.Id)
|
|
.Set(cs => cs.Dmnguid, Stock.drugManuNo?.Id ?? String.Empty)
|
|
.Set(cs => cs.EffDate, Stock.drugManuNo?.EffDate.ToString().Substring(0, 10) ?? String.Empty)
|
|
.Set(cs => cs.ManuNo, Stock.drugManuNo?.ManuNo ?? String.Empty);
|
|
|
|
if (Stock.Drug != null && !Stock.Drug.DrugId.Equals(Stock.DrugId))
|
|
{
|
|
q = q.Set(cs => cs.DrugId, Stock.Drug?.DrugId);
|
|
}
|
|
|
|
var r = await q.UpdateAsync();
|
|
return r > 0;
|
|
}
|
|
public async Task<PageMultiData<ChannelStock, DrugInfo>> GetAllChannelListWithDrug(int DrawerType, string drugName, int? take, int? skip)
|
|
{
|
|
|
|
var query = _connection.ChannelStock.AsQueryable();
|
|
|
|
if (DrawerType != 0)
|
|
{
|
|
query = query.Where(cl => cl.DrawerType == DrawerType);
|
|
}
|
|
|
|
if (!String.IsNullOrEmpty(drugName))
|
|
{
|
|
query = query.Where(cl => cl.Drug.DrugName.Equals(drugName));
|
|
}
|
|
|
|
//query = query.Where(cl => !String.IsNullOrEmpty(cl.DrugId));
|
|
query = query.Where(cl => cl.MachineId == _setting.machineId);
|
|
|
|
|
|
int pagedData = await query.CountAsync();
|
|
|
|
List<ChannelStock> list = await query
|
|
.LoadWith(cl => cl.Drug)
|
|
.LoadWith(cl => cl.Drug.Manus)
|
|
.LoadWith(cl => cl.drugManuNo)
|
|
.OrderBy((cl) => cl.DrawerNo)
|
|
.ThenBy((cl) => cl.ColNo)
|
|
.Skip((int)skip)
|
|
.Take((int)take)
|
|
.ToListAsync();
|
|
|
|
var other = _connection.DrugInfo.AsQueryable();
|
|
List<DrugInfo> drugInfos = await other
|
|
.LoadWith(di => di.Manus)
|
|
.OrderBy((di) => di.DrugId)
|
|
.ToListAsync();
|
|
|
|
return new PageMultiData<ChannelStock, DrugInfo>()
|
|
{
|
|
|
|
TotalDesserts = pagedData,
|
|
Desserts = list,
|
|
Other = drugInfos
|
|
};
|
|
}
|
|
//抽屉加药、取药获取数据
|
|
public async Task<ChannelStockWithDrawerCount<ChannelStock>> GetChannelStockByDrawerNoWithDrawers(int DrawerNo, int Quantity = 0)
|
|
{
|
|
var query = _connection.ChannelStock.AsQueryable()
|
|
.LoadWith(cs => cs.Drug)
|
|
.LoadWith(cs => cs.drugManuNo)
|
|
.LoadWith(cs => cs.Drug.Manus)
|
|
.Where(cs => cs.DrawerNo == DrawerNo)
|
|
.Where(cs => cs.DrugId != String.Empty)
|
|
.Where(cs => cs.DrawerType == 1)
|
|
.Where(cs => cs.MachineId == _setting.machineId);
|
|
|
|
if (Quantity > 0)
|
|
{
|
|
query = query.Where(cs => cs.Quantity > 0);
|
|
}
|
|
int[] ints = _connection.ChannelStock.Where(cs => cs.MachineId == _setting.machineId).GroupBy(cs => cs.DrawerNo).Select(cs => cs.Key).ToArray();
|
|
List<ChannelStock> channelStocks = await query
|
|
.OrderBy((cs) => cs.DrawerNo)
|
|
.ThenBy((cs) => cs.ColNo)
|
|
.ToListAsync();
|
|
return new ChannelStockWithDrawerCount<ChannelStock>() { DrawerArray = ints, ChannelStocks = channelStocks };
|
|
}
|
|
//盘点
|
|
public async Task<bool> DrawerCheckFinish(List<ChannelStock> Stocks)
|
|
{
|
|
try
|
|
{
|
|
_connection.BeginTransaction();
|
|
|
|
string InvoiceId = "CHECK_" + CurrentTimeMillis();
|
|
var flag = true;
|
|
for (var i = 0; i < Stocks.Count; i++)
|
|
{
|
|
var stock = Stocks[i];
|
|
|
|
//var ManuNo = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.ManuNo : stock.ManuNo;
|
|
//var EffDate = !stock.drugManuNo.ManuNo.Equals(stock.ManuNo) ? stock.drugManuNo.EffDate : stock.EffDate;
|
|
var ManuNo = stock.ManuNo;
|
|
var EffDate = stock.EffDate;
|
|
if (!DateTime.TryParse(stock.EffDate, out DateTime dEffDate))
|
|
{
|
|
//效期转换出错
|
|
if (stock.ManuNo != null)
|
|
{
|
|
string[] idate = stock.EffDate.Split('/');
|
|
foreach (string iS in idate)
|
|
{
|
|
if (!string.IsNullOrEmpty(iS.Replace(" ", "").Trim()))
|
|
{
|
|
switch (iS.Replace(" ", "").Trim().Length)
|
|
{
|
|
case 4:
|
|
EffDate = iS.Replace(" ", "").Trim();
|
|
break;
|
|
case 2:
|
|
EffDate += "-" + iS.Replace(" ", "").Trim();
|
|
break;
|
|
case 1:
|
|
EffDate += "-0" + iS.Replace(" ", "").Trim();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
EffDate = dEffDate.ToString("yyyy-MM-dd");
|
|
}
|
|
// 出入库记录
|
|
int mid = _connection.InsertWithInt32Identity(new MachineRecord()
|
|
{
|
|
MachineId = _setting.machineId,
|
|
DrawerNo = stock.DrawerNo,
|
|
ColNo = stock.ColNo,
|
|
DrugId = stock.DrugId,
|
|
ManuNo = ManuNo,
|
|
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
OperationTime = DateTime.Now,
|
|
Type = 4,
|
|
Quantity = stock.CheckQuantity,
|
|
Operator = _globalStateService.Operator.Id,
|
|
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
InvoiceId = InvoiceId
|
|
});
|
|
// 更新库存
|
|
var stockQ = _connection.ChannelStock.Where(cs => cs.Id == stock.Id)
|
|
.Set(cs => cs.Quantity, stock.CheckQuantity)
|
|
.Set(cs => cs.ManuNo, ManuNo)
|
|
.Set(cs => cs.EffDate, EffDate)
|
|
.Set(cs => cs.Dmnguid, stock.drugManuNo?.Id);
|
|
|
|
int r = stockQ.Update();
|
|
// 获取更新完库存之后的药品库存
|
|
List<ChannelStock> list = await _connection.ChannelStock.AsQueryable()
|
|
.InnerJoin(
|
|
_connection.ChannelList.Where(cl => cl.MachineId.Equals(_setting.machineId)).Where(cl => cl.DrawerType == 1),
|
|
(cs, cl) => cs.ListId == cl.Id,
|
|
(cs, cl) => cs
|
|
)
|
|
.Where(cs => cs.DrugId.Equals(stock.DrugId))
|
|
.ToListAsync();
|
|
// 保存账册
|
|
int acid = _connection.InsertWithInt32Identity(new AccountBook()
|
|
{
|
|
MachineId = _setting.machineId,
|
|
DrugId = stock.DrugId,
|
|
ManuNo = ManuNo,
|
|
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
OperationTime = DateTime.Now,
|
|
Type = 3,
|
|
OutQuantity = stock.TakeQuantity,
|
|
AddQuantity = stock.AddQuantity,
|
|
Operator = _globalStateService.Operator.Id,
|
|
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
ManuStock = list.Where(it => it.ManuNo == stock.ManuNo).Sum(it => it.Quantity),
|
|
TotalStock = list.Sum(it => it.Quantity),
|
|
InvoiceId = InvoiceId
|
|
});
|
|
if (mid > 0 && r > 0 && acid > 0)
|
|
{
|
|
//根据抽屉类型判断是否需要写标签
|
|
if (stock.BoardType.ToString().Contains("5"))
|
|
{
|
|
await _portUtil.WriteQuantityMethod(stock.CheckQuantity, stock.DrawerNo, stock.ColNo);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
break;
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
_connection.CommitTransaction();
|
|
}
|
|
else
|
|
{
|
|
_connection.RollbackTransaction();
|
|
}
|
|
return flag;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error($"抽屉盘点操作完成保存数据库失败,错误:" + ex.Message);
|
|
_connection.RollbackTransaction();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//抽屉获取库存数据--药品绑定
|
|
public async Task<ChannelStockWithDrawerCount<ChannelStock>> GetChannelStockByBiaoDing(int DrawerNo, int Quantity = 0)
|
|
{
|
|
var query = _connection.ChannelStock.AsQueryable()
|
|
.LoadWith(cs => cs.Drug)
|
|
.LoadWith(cs => cs.drugManuNo)
|
|
.LoadWith(cs => cs.Drug.Manus)
|
|
.Where(cs => cs.DrawerType == 1)
|
|
.Where(cs => cs.MachineId == _setting.machineId);
|
|
|
|
if (DrawerNo > 0)
|
|
{
|
|
query = query.Where(cs => cs.DrawerNo == DrawerNo);
|
|
}
|
|
int[] ints = _connection.ChannelStock.Where(cs => cs.MachineId == _setting.machineId).GroupBy(cs => cs.DrawerNo).Select(cs => cs.Key).ToArray();
|
|
|
|
|
|
List<ChannelStock> channelStocks = await query
|
|
.OrderBy((cs) => cs.DrawerNo)
|
|
.ThenBy((cs) => cs.ColNo)
|
|
.ToListAsync();
|
|
return new ChannelStockWithDrawerCount<ChannelStock>() { DrawerArray = ints, ChannelStocks = channelStocks };
|
|
}
|
|
//手术室药箱获取绑定数据
|
|
public async Task<PageMultiData<ChannelList, Plan>> GetAllChannelListWithPlan(int? take, int? skip)
|
|
{
|
|
|
|
var query = _connection.ChannelList.AsQueryable()
|
|
.Where(cl => cl.MachineId == _setting.boxMachineId);
|
|
//.LoadWith(cl=>cl.PlanInfo);
|
|
|
|
|
|
int pagedData = await query.CountAsync();
|
|
|
|
List<ChannelList> list = await query
|
|
.OrderBy((cl) => cl.DrawerNo)
|
|
.Skip((int)skip)
|
|
.Take((int)take)
|
|
.ToListAsync();
|
|
if (list != null && list.Count > 0)
|
|
{
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
if (!string.IsNullOrEmpty(list[i].DrugId))
|
|
{
|
|
list[i].PlanInfo = _connection.Plan.AsQueryable().Where(p => p.Id == Convert.ToInt32(list[i].DrugId)).FirstOrDefault();
|
|
}
|
|
}
|
|
}
|
|
|
|
var other = _connection.Plan.AsQueryable().Where(p => p.UseState == 1 && p._PlanDetails.Count > 0);
|
|
List<Plan> planInfos = await other
|
|
.LoadWith(p => p._PlanDetails.Where(pd => pd.UseState == 1))
|
|
.OrderBy((p) => p.Id)
|
|
.ToListAsync();
|
|
if (planInfos != null && planInfos.Count > 0)
|
|
{
|
|
for (int i = 0; i < planInfos.Count(); i++)
|
|
{
|
|
for (int j = 0; j < planInfos[i]._PlanDetails.Count(); j++)
|
|
{
|
|
planInfos[i]._PlanDetails[j]._DrugInfo =
|
|
_connection.DrugInfo.AsQueryable().Where(di => di.DrugId == planInfos[i]._PlanDetails[j].DrugId).First();
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
return new PageMultiData<ChannelList, Plan>()
|
|
{
|
|
|
|
TotalDesserts = pagedData,
|
|
Desserts = list,
|
|
Other = planInfos
|
|
};
|
|
}
|
|
/// <summary>
|
|
/// 手术室药箱绑定套餐
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public async Task<bool> BindBox(ChannelList list)
|
|
{
|
|
try
|
|
{
|
|
_connection.BeginTransaction();
|
|
bool bFlag = true;
|
|
|
|
var q = _connection.ChannelList
|
|
.Where(cs => cs.Id == list.Id).Set(cs => cs.DrugId, list.PlanInfo.Id.ToString());
|
|
//将套餐中的药品信息写入channelStock
|
|
//查询套餐中药品信息
|
|
var query = _connection.PlanDetails.AsQueryable().Where(p => p.PlanId == list.PlanInfo.Id);
|
|
List<PlanDetails> planInfos = await query.ToListAsync();
|
|
if (planInfos != null && planInfos.Count > 0)
|
|
{
|
|
for (int i = 0; i < planInfos.Count; i++)
|
|
{
|
|
int mid = await _connection.InsertAsync(new ChannelStock()
|
|
{
|
|
Id = Guid.NewGuid().ToString(),
|
|
ListId = list.Id,
|
|
MachineId = list.MachineId,
|
|
DrawerNo = list.DrawerNo,
|
|
DrugId = planInfos[i].DrugId.ToString(),
|
|
BaseQuantity = planInfos[i].BaseQuantity,
|
|
});
|
|
if (mid > 0)
|
|
{
|
|
bFlag = true;
|
|
}
|
|
else
|
|
{
|
|
bFlag = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
var r = await q.UpdateAsync();
|
|
if (bFlag && r > 0)
|
|
{
|
|
_connection.CommitTransaction();
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
_connection.RollbackTransaction();
|
|
return false;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_connection.RollbackTransaction();
|
|
logger.Info($"绑定套餐异常{ex.Message}");
|
|
return false;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 手术室药箱解绑套餐
|
|
/// </summary>
|
|
/// <param name="list"></param>
|
|
/// <returns></returns>
|
|
public async Task<bool> UnBindBox(ChannelList list)
|
|
{
|
|
try
|
|
{
|
|
_connection.BeginTransaction();
|
|
|
|
var r = await _connection.ChannelList
|
|
.Where(cs => cs.Id == list.Id)
|
|
.Set(cs => cs.DrugId, String.Empty)
|
|
.UpdateAsync();
|
|
|
|
var cs = await _connection.ChannelStock.Where(cs => cs.ListId == list.Id).DeleteAsync();
|
|
if (r > 0 && cs > 0)
|
|
{
|
|
_connection.CommitTransaction();
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
_connection.RollbackTransaction();
|
|
return false;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_connection.RollbackTransaction();
|
|
logger.Info($"手术室药箱解绑异常:{ex.Message}");
|
|
return false;
|
|
}
|
|
}
|
|
//获取手术室药箱中所有要补药的数据
|
|
public async Task<PageData<ChannelList>> GetAllBoxAddDrug(int? take, int? skip)
|
|
{
|
|
try
|
|
{
|
|
List<ChannelList> channelLists = new List<ChannelList>();
|
|
var query = _connection.ChannelStock//.AsQueryable()
|
|
.Where(cs => cs.MachineId == _setting.boxMachineId&&cs.BoxState==1)
|
|
.GroupBy(cs => new { cs.DrawerNo, cs.DrugId })
|
|
.Select(g => new
|
|
{
|
|
DrawerNo = g.Key.DrawerNo,
|
|
DrugId = g.Key.DrugId,
|
|
sumQuantity = g.Sum(cs => cs.Quantity)
|
|
})
|
|
.ToList();
|
|
|
|
var queryChannelStock = _connection.ChannelStock.AsQueryable()
|
|
.Where(cs => cs.MachineId == _setting.boxMachineId&&cs.BoxState==1)
|
|
.LoadWith(cs => cs.Drug).ToList();
|
|
|
|
|
|
var queryList = await _connection.ChannelList.AsQueryable().Where(cl => cl.MachineId == _setting.boxMachineId).ToListAsync();
|
|
for (int i = 0; i < queryList.Count; i++)
|
|
{
|
|
foreach (var item in query)
|
|
{
|
|
if (queryList[i].DrawerNo == item.DrawerNo)
|
|
{
|
|
ChannelStock stock = queryChannelStock.Where(cs => cs.DrawerNo == item.DrawerNo && cs.DrugId == item.DrugId && cs.BaseQuantity > item.sumQuantity).FirstOrDefault();
|
|
if (stock != null)
|
|
{
|
|
stock.NeedQuantity = stock.BaseQuantity-item.sumQuantity;
|
|
queryList[i].ChannelStocks.Add(stock);
|
|
}
|
|
}
|
|
}
|
|
if (queryList[i].ChannelStocks != null && queryList[i].ChannelStocks.Count > 0)
|
|
{
|
|
channelLists.Add(queryList[i]);
|
|
}
|
|
}
|
|
int pagedData = channelLists.Count;
|
|
|
|
|
|
|
|
|
|
return new PageData<ChannelList>()
|
|
{
|
|
|
|
TotalDesserts = pagedData,
|
|
Desserts = channelLists
|
|
};
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Info($"获取药箱中补药数据失败{ex.Message}");
|
|
return null;
|
|
}
|
|
}
|
|
|
|
//手术室药箱补药获取毒麻柜中的药品信息
|
|
public async Task<List<BoxTakeVo>> getTakeInfoByBox(ChannelList cl)
|
|
{
|
|
try
|
|
{
|
|
List<BoxTakeVo> tempData = new();
|
|
List<BoxTakeVo> tempData2 = new();
|
|
var flag = true;
|
|
for (int i = 0; i < cl.ChannelStocks.Count; i++)
|
|
{
|
|
ChannelStock boxCs = cl.ChannelStocks[i];
|
|
// 当前药品取药数量
|
|
var Quantity = boxCs.NeedQuantity;
|
|
List<ChannelStock> stockList = await _connection.ChannelStock
|
|
.Where(cs=>cs.MachineId==_setting.machineId&&cs.DrawerType==1&&cs.DrugId==boxCs.DrugId&&cs.Quantity>0&&cs.ManuNo!=null)
|
|
.AsQueryable()
|
|
.OrderBy(cs=>cs.EffDate).ToListAsync();
|
|
|
|
// 当前药品的库存总量
|
|
var total = stockList.Sum(current => current.Quantity);
|
|
|
|
tempData2.Add(new BoxTakeVo()
|
|
{
|
|
Drug = boxCs.Drug,
|
|
StockQuantity = total,
|
|
Quantity = Quantity
|
|
});
|
|
|
|
if (flag)
|
|
{
|
|
// 盘点库存是否足够
|
|
if (total > Quantity)
|
|
{
|
|
|
|
for (var j = 0; Quantity > 0; j++)
|
|
{
|
|
ChannelStock stock = stockList[j];
|
|
if (Quantity > stock.Quantity)
|
|
{
|
|
// 取药数量大于库存
|
|
tempData.Add(new BoxTakeVo()
|
|
{
|
|
Drug = boxCs.Drug,
|
|
BoxDetail= boxCs,
|
|
ChannelStock = stock,
|
|
StockQuantity = total,
|
|
Quantity = stock.Quantity,
|
|
});
|
|
Quantity -= stock.Quantity;
|
|
}
|
|
else
|
|
{
|
|
//取药数量小于库存
|
|
tempData.Add(new BoxTakeVo()
|
|
{
|
|
Drug = boxCs.Drug,
|
|
BoxDetail = boxCs,
|
|
ChannelStock = stock,
|
|
StockQuantity = total,
|
|
Quantity = Quantity,
|
|
});
|
|
Quantity = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 库存不足
|
|
flag = false;
|
|
}
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
return tempData;
|
|
}
|
|
else
|
|
{
|
|
return tempData2;
|
|
}
|
|
return tempData;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Info($"获取数据异常{ex.Message}");
|
|
return null;
|
|
}
|
|
}
|
|
//手术室药箱补药完成
|
|
public async Task<bool> BoxTakeFinish(List<BoxTakeVo> datas)
|
|
{
|
|
|
|
try
|
|
{
|
|
_connection.BeginTransaction();
|
|
var flag = true;
|
|
// 更新处方状态
|
|
//int r1 = _connection.ChannelStock.Where(oi => oi.OrderNo == datas.First().OrderDetail.OrderNo)
|
|
// .Set(oi => oi.Status, 1)
|
|
// .Update();
|
|
//if (!(r1 > 0))
|
|
//{
|
|
// flag = false;
|
|
// logger.Error("处方取药完成更新处方状态失败");
|
|
// _connection.RollbackTransaction();
|
|
// return flag;
|
|
//}
|
|
for (var i = 0; i < datas.Count; i++)
|
|
{
|
|
var boxTakeVo = datas[i];
|
|
var EffDate = boxTakeVo.ChannelStock.EffDate;
|
|
if (!DateTime.TryParse(boxTakeVo.ChannelStock.EffDate, out DateTime dEffDate))
|
|
{
|
|
//效期转换出错
|
|
if (boxTakeVo.ChannelStock.EffDate != null)
|
|
{
|
|
string[] idate = boxTakeVo.ChannelStock.EffDate.Split('/');
|
|
foreach (string iS in idate)
|
|
{
|
|
if (!string.IsNullOrEmpty(iS.Trim()))
|
|
{
|
|
switch (iS.Trim().Length)
|
|
{
|
|
case 4:
|
|
EffDate = iS.Trim();
|
|
break;
|
|
case 2:
|
|
EffDate += "-" + iS.Trim();
|
|
break;
|
|
case 1:
|
|
EffDate += "-0" + iS.Trim();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
EffDate = dEffDate.ToString("yyyy-MM-dd");
|
|
}
|
|
// 出库记录
|
|
int mid = _connection.InsertWithInt32Identity(new MachineRecord()
|
|
{
|
|
MachineId = _setting.machineId,
|
|
DrawerNo = boxTakeVo.ChannelStock.DrawerNo,
|
|
ColNo = boxTakeVo.ChannelStock.ColNo,
|
|
DrugId = boxTakeVo.ChannelStock.DrugId,
|
|
ManuNo = boxTakeVo.ChannelStock.ManuNo,
|
|
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
OperationTime = DateTime.Now,
|
|
Type = 2,
|
|
Quantity = boxTakeVo.GetQuantity,
|
|
Operator = _globalStateService.Operator.Id,
|
|
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
InvoiceId = boxTakeVo.BoxDetail.Id.ToString(),
|
|
});
|
|
// 更新库存
|
|
int r = _connection.ChannelStock.Where(cs => cs.Id == boxTakeVo.ChannelStock.Id)
|
|
.Set(cs => cs.Quantity, boxTakeVo.ChannelStock.Quantity - boxTakeVo.GetQuantity)
|
|
.Update();
|
|
#region 保存账册,给药箱补药不记录出库账册
|
|
// 获取更新完库存之后的药品库存
|
|
//List<ChannelStock> list = await _connection.ChannelStock.AsQueryable()
|
|
// .InnerJoin(
|
|
// _connection.ChannelList.Where(cl => cl.MachineId.Equals(_setting.machineId)).Where(cl => cl.DrawerType == 1),
|
|
// (cs, cl) => cs.ListId == cl.Id,
|
|
// (cs, cl) => cs
|
|
// )
|
|
// .Where(cs => cs.DrugId.Equals(boxTakeVo.ChannelStock.DrugId))
|
|
// .ToListAsync();
|
|
// 保存账册,给药箱补药不记录出库账册
|
|
//int acid = _connection.InsertWithInt32Identity(new AccountBook()
|
|
//{
|
|
// MachineId = _setting.machineId,
|
|
// DrugId = boxTakeVo.ChannelStock.DrugId,
|
|
// ManuNo = boxTakeVo.ChannelStock.ManuNo,
|
|
// EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
// OperationTime = DateTime.Now,
|
|
// Type = 2,
|
|
// OutQuantity = boxTakeVo.GetQuantity,
|
|
// AddQuantity = 0,
|
|
// Operator = _globalStateService.Operator.Id,
|
|
// Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
// ManuStock = list.Where(it => it.ManuNo == boxTakeVo.ChannelStock.ManuNo).Sum(it => it.Quantity),
|
|
// TotalStock = list.Sum(it => it.Quantity),
|
|
// //InvoiceId = orderTakeVo.OrderDetail.Id.ToString()
|
|
//});
|
|
#endregion
|
|
|
|
//更新药箱中的药品数量
|
|
int boxID = _connection.Insert(new ChannelStock() {
|
|
Id = Guid.NewGuid().ToString(),
|
|
ListId = boxTakeVo.BoxDetail.Id,
|
|
MachineId = _setting.boxMachineId,
|
|
DrawerNo = boxTakeVo.BoxDetail.DrawerNo,
|
|
AddToQuantity = boxTakeVo.GetQuantity,
|
|
NeedQuantity=0,
|
|
DrugId = boxTakeVo.ChannelStock.DrugId,
|
|
ManuNo = boxTakeVo.ChannelStock.ManuNo,
|
|
EffDate= boxTakeVo.ChannelStock.EffDate,
|
|
BaseQuantity = boxTakeVo.BoxDetail.BaseQuantity,
|
|
BoardType = boxTakeVo.BoxDetail.BoardType,
|
|
BoxState= 2 //补药完成
|
|
});
|
|
// 手术室药箱入库记录
|
|
int boxMId = _connection.InsertWithInt32Identity(new MachineRecord()
|
|
{
|
|
MachineId = _setting.machineId,
|
|
DrawerNo = boxTakeVo.BoxDetail.DrawerNo,
|
|
DrugId = boxTakeVo.ChannelStock.DrugId,
|
|
ManuNo = boxTakeVo.ChannelStock.ManuNo,
|
|
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
|
|
OperationTime = DateTime.Now,
|
|
Type = 1,
|
|
Quantity = boxTakeVo.GetQuantity,
|
|
Operator = _globalStateService.Operator.Id,
|
|
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
|
|
InvoiceId = boxTakeVo.ChannelStock.Id.ToString(),
|
|
});
|
|
int totalQuantity = _connection.PlanDetails.Where(p => p.PlanId == Convert.ToInt32(boxTakeVo.BoxDetail.DrugId)).Sum(p => p.BaseQuantity);
|
|
int list=_connection.ChannelList.Where(cl => cl.Id == boxTakeVo.BoxDetail.Id)
|
|
.Set(cl => cl.TotalQuantity, totalQuantity)
|
|
.Update();
|
|
int delResutl = await _connection.ChannelStock.Where(cs => cs.Id == boxTakeVo.BoxDetail.Id).DeleteAsync();
|
|
if (mid > 0 && r > 0 && boxID > 0&& boxMId>0&& delResutl>0&& list>0)
|
|
{
|
|
if (boxTakeVo.ChannelStock.BoardType.ToString().Contains("5"))
|
|
{
|
|
await _portUtil.WriteQuantityMethod(boxTakeVo.ChannelStock.Quantity - boxTakeVo.GetQuantity, boxTakeVo.ChannelStock.DrawerNo, boxTakeVo.ChannelStock.ColNo);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
break;
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
_connection.CommitTransaction();
|
|
}
|
|
else
|
|
{
|
|
_connection.RollbackTransaction();
|
|
}
|
|
return flag;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error("处方取药完成保存数据库失败,错误:" + ex.Message);
|
|
_connection.RollbackTransaction();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
//手术室药箱入库
|
|
public async Task<PageData<ChannelList>> GetBoxWaitInfo(int? take, int? skip)
|
|
{
|
|
try
|
|
{
|
|
List<ChannelList> channelLists = new List<ChannelList>();
|
|
var query = _connection.ChannelStock//.AsQueryable()
|
|
.Where(cs => cs.MachineId == _setting.boxMachineId && cs.BoxState == 2)
|
|
.GroupBy(cs => new { cs.DrawerNo, cs.DrugId })
|
|
.Select(g => new
|
|
{
|
|
DrawerNo = g.Key.DrawerNo,
|
|
DrugId = g.Key.DrugId,
|
|
sumQuantity = g.Sum(cs => cs.Quantity)
|
|
})
|
|
.ToList();
|
|
|
|
var queryChannelStock = _connection.ChannelStock.AsQueryable()
|
|
.Where(cs => cs.MachineId == _setting.boxMachineId && cs.BoxState == 2)
|
|
.LoadWith(cs => cs.Drug).ToList();
|
|
|
|
|
|
var queryList = await _connection.ChannelList.AsQueryable().Where(cl => cl.MachineId == _setting.boxMachineId).ToListAsync();
|
|
for (int i = 0; i < queryList.Count; i++)
|
|
{
|
|
foreach (var item in query)
|
|
{
|
|
if (queryList[i].DrawerNo == item.DrawerNo)
|
|
{
|
|
ChannelStock stock = queryChannelStock.Where(cs => cs.DrawerNo == item.DrawerNo && cs.DrugId == item.DrugId && cs.BaseQuantity > item.sumQuantity).FirstOrDefault();
|
|
if (stock != null)
|
|
{
|
|
stock.NeedQuantity = stock.BaseQuantity - item.sumQuantity;
|
|
queryList[i].ChannelStocks.Add(stock);
|
|
}
|
|
}
|
|
}
|
|
if (queryList[i].ChannelStocks != null && queryList[i].ChannelStocks.Count > 0)
|
|
{
|
|
channelLists.Add(queryList[i]);
|
|
}
|
|
}
|
|
int pagedData = channelLists.Count;
|
|
|
|
|
|
|
|
|
|
return new PageData<ChannelList>()
|
|
{
|
|
|
|
TotalDesserts = pagedData,
|
|
Desserts = channelLists
|
|
};
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Info($"获取药箱中补药数据失败{ex.Message}");
|
|
return null;
|
|
}
|
|
}
|
|
//手术室药箱入库获取待入库明细
|
|
public async Task<List<BoxTakeVo>> getBoxWaitByBox(ChannelList cl)
|
|
{
|
|
try
|
|
{
|
|
List<BoxTakeVo> tempData = new();
|
|
List<BoxTakeVo> tempData2 = new();
|
|
var flag = true;
|
|
for (int i = 0; i < cl.ChannelStocks.Count; i++)
|
|
{
|
|
ChannelStock boxCs = cl.ChannelStocks[i];
|
|
// 当前药品取药数量
|
|
var Quantity = boxCs.NeedQuantity;
|
|
List<ChannelStock> stockList = await _connection.ChannelStock
|
|
.Where(cs => cs.MachineId == _setting.machineId && cs.DrawerType == 1 && cs.DrugId == boxCs.DrugId && cs.Quantity > 0 && cs.ManuNo != null)
|
|
.AsQueryable()
|
|
.OrderBy(cs => cs.EffDate).ToListAsync();
|
|
|
|
// 当前药品的库存总量
|
|
var total = stockList.Sum(current => current.Quantity);
|
|
|
|
tempData2.Add(new BoxTakeVo()
|
|
{
|
|
Drug = boxCs.Drug,
|
|
StockQuantity = total,
|
|
Quantity = Quantity
|
|
});
|
|
|
|
if (flag)
|
|
{
|
|
// 盘点库存是否足够
|
|
if (total > Quantity)
|
|
{
|
|
|
|
for (var j = 0; Quantity > 0; j++)
|
|
{
|
|
ChannelStock stock = stockList[j];
|
|
if (Quantity > stock.Quantity)
|
|
{
|
|
// 取药数量大于库存
|
|
tempData.Add(new BoxTakeVo()
|
|
{
|
|
Drug = boxCs.Drug,
|
|
BoxDetail = boxCs,
|
|
ChannelStock = stock,
|
|
StockQuantity = total,
|
|
Quantity = stock.Quantity,
|
|
});
|
|
Quantity -= stock.Quantity;
|
|
}
|
|
else
|
|
{
|
|
//取药数量小于库存
|
|
tempData.Add(new BoxTakeVo()
|
|
{
|
|
Drug = boxCs.Drug,
|
|
BoxDetail = boxCs,
|
|
ChannelStock = stock,
|
|
StockQuantity = total,
|
|
Quantity = Quantity,
|
|
});
|
|
Quantity = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 库存不足
|
|
flag = false;
|
|
}
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
return tempData;
|
|
}
|
|
else
|
|
{
|
|
return tempData2;
|
|
}
|
|
return tempData;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Info($"获取数据异常{ex.Message}");
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|