修改提交

This commit is contained in:
马巧 2025-08-30 08:54:40 +08:00
parent ba687a1dd0
commit a0c1e6c174
26 changed files with 463 additions and 190 deletions

View File

@ -66,23 +66,23 @@ namespace MasaBlazorApp3.DataAccess.Dao
Task<bool> BoxAddBoxFinish(ChannelList boxChannelList);
//手术室药盒获取药盒药品及库存信息
Task<PageData<PlanDetails>> GetBoxDrugInfo(int DrawerNo, int? take, int? skip);
Task<PageData<PlanDetails>> GetBoxDrugInfo(string DrawerNo, int? take, int? skip);
//药盒移库时获取选中药盒号的药品信息
Task<PageData<ChannelStock>> GetChannelStockByDrug(ChannelStock cs, int drawerNo, int? take, int? skip);
Task<PageData<ChannelStock>> GetChannelStockByDrug(ChannelStock cs, string drawerNo, int? take, int? skip);
/// <summary>
/// 药盒交换药品获取所有除本药盒外的所有药盒号
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
Task<int[]> GetDrawerNum(ChannelStock channelStock);
Task<string[]> GetDrawerNum(ChannelStock channelStock);
/// <summary>
/// 药盒移除药品,获取所有除本药盒外的所有包含该药品的药盒号
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
Task<int[]> GetDrawerNumForRemove(ChannelStock channelStock);
Task<string[]> GetDrawerNumForRemove(ChannelStock channelStock);
//手术室药盒交换药品完成
Task<bool> BoxReplaceFinish(ChannelStock stock, List<ChannelStock> Stocks);

View File

@ -31,7 +31,9 @@ namespace MasaBlazorApp3.DataAccess.Dao
//获取待处理处方中的麻醉师
public Task<PageData<OrderInfo>> GetAllOrderInfo(string Name, string OrderrNo, DateTime? OrderDate, int? take, int? skip);
//获取所有药盒号
public Task<int[]> GetDrawerNum(string machineId);
public Task<List<ChannelStock>> GetDrawerNum(string machineId);
/// 获取指定药盒号
public Task<List<BoxModel>> GetDrawerNumByOperationNum(string machineId, List<int> operationNum);
//核对处方
public Task<bool> CheckOrderInfo(IList<OrderInfo> selectedOrderInfos, int DrawerNo);
}

View File

@ -24,7 +24,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
private readonly PortUtil _portUtil;
private readonly ILog logger = LogManager.GetLogger(typeof(ChannelListDao));
private readonly IServiceProvider _serviceProvider;
public ChannelListDao(AppDataConnection connection, IOptions<SettingConfig> setting, GlobalStateService globalStateService, PortUtil portUtil)
{
_globalStateService = globalStateService;
@ -574,6 +574,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
{
list[i].PlanInfo = _connection.Plan.AsQueryable().Where(p => p.Id == Convert.ToInt32(list[i].DrugId)).FirstOrDefault();
}
list[i].BoxDisabled = list[i].TotalQuantity > 0 ? true : false;
}
}
@ -630,6 +631,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
ListId = list.Id,
MachineId = list.MachineId,
DrawerNo = list.DrawerNo,
ColNo=list.ColNo,
DrugId = planInfos[i].DrugId.ToString(),
BaseQuantity = planInfos[i].BaseQuantity,
//BoxState = 1
@ -706,6 +708,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
ListId = list.Id,
MachineId = list.MachineId,
DrawerNo = list.DrawerNo,
ColNo=list.ColNo,
DrugId = planInfos[i].DrugId.ToString(),
BaseQuantity = planInfos[i].BaseQuantity,
//BoxState = 1
@ -817,11 +820,12 @@ namespace MasaBlazorApp3.DataAccess.Impl
List<ChannelList> channelLists = new List<ChannelList>();
var query = _connection.ChannelStock//.AsQueryable()
.Where(cs => cs.MachineId == _setting.boxMachineId)
.GroupBy(cs => new { cs.DrawerNo, cs.DrugId })
.GroupBy(cs => new { cs.DrawerNo,cs.ColNo, cs.DrugId })
.Select(g => new
{
DrawerNo = g.Key.DrawerNo,
DrugId = g.Key.DrugId,
ColNo=g.Key.ColNo,
sumQuantity = g.Sum(cs => cs.Quantity),
baseQuantity = g.Max(cs => cs.BaseQuantity),
sumAdd=g.Sum(cs=>cs.AddToQuantity)
@ -838,9 +842,9 @@ namespace MasaBlazorApp3.DataAccess.Impl
{
foreach (var item in query)
{
if (queryList[i].DrawerNo == item.DrawerNo)
if (queryList[i].DrawerNo == item.DrawerNo && queryList[i].ColNo==item.ColNo)
{
ChannelStock stock = queryChannelStock.Where(cs => cs.DrawerNo == item.DrawerNo && cs.DrugId == item.DrugId && cs.BaseQuantity > item.sumQuantity).FirstOrDefault();
ChannelStock stock = queryChannelStock.Where(cs => cs.DrawerNo == item.DrawerNo && cs.ColNo==item.ColNo&&cs.DrugId == item.DrugId && cs.BaseQuantity > item.sumQuantity).FirstOrDefault();
if (stock != null)
{
stock.NeedQuantity = stock.BaseQuantity - item.sumQuantity;
@ -1078,7 +1082,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
#endregion
//查询药盒中是否有该批次药品有则把对应数量累加无则insert
ChannelStock? BoxChannelStock = _connection.ChannelStock.AsQueryable()
.Where(cs => cs.MachineId == boxTakeVo.BoxDetail.MachineId && cs.DrawerNo == boxTakeVo.BoxDetail.DrawerNo && cs.DrugId == boxTakeVo.ChannelStock.DrugId && cs.ManuNo == boxTakeVo.ChannelStock.ManuNo && cs.EffDate == EffDate).FirstOrDefault();
.Where(cs => cs.MachineId == boxTakeVo.BoxDetail.MachineId && cs.DrawerNo == boxTakeVo.BoxDetail.DrawerNo&&cs.ColNo==boxTakeVo.BoxDetail.ColNo && cs.DrugId == boxTakeVo.ChannelStock.DrugId && cs.ManuNo == boxTakeVo.ChannelStock.ManuNo && cs.EffDate == EffDate).FirstOrDefault();
int boxID = 0;
if (BoxChannelStock != null)
{
@ -1097,6 +1101,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
ListId = boxTakeVo.BoxDetail.ListId,
MachineId = _setting.boxMachineId,
DrawerNo = boxTakeVo.BoxDetail.DrawerNo,
ColNo=boxTakeVo.BoxDetail.ColNo,
//AddToQuantity = boxTakeVo.Quantity,//boxTakeVo.GetQuantity,
//NeedQuantity = 0,
Quantity = boxTakeVo.GetQuantity,
@ -1114,6 +1119,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
{
MachineId = _setting.machineId,
DrawerNo = boxTakeVo.BoxDetail.DrawerNo,
ColNo=boxTakeVo.BoxDetail.ColNo,
DrugId = boxTakeVo.ChannelStock.DrugId,
ManuNo = boxTakeVo.ChannelStock.ManuNo,
EffDate = !String.IsNullOrEmpty(EffDate) ? DateTime.ParseExact(EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
@ -1124,7 +1130,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
Reviewer = _globalStateService.Reviewer?.Id ?? _globalStateService.Operator.Id,
InvoiceId = boxTakeVo.ChannelStock.Id.ToString(),
});
int delResutl = await _connection.ChannelStock.Where(cs => cs.MachineId == boxTakeVo.BoxDetail.MachineId && cs.DrugId == boxTakeVo.BoxDetail.DrugId && cs.ManuNo == null).DeleteAsync();
int delResutl = await _connection.ChannelStock.Where(cs => cs.MachineId == boxTakeVo.BoxDetail.MachineId && cs.DrugId == boxTakeVo.BoxDetail.DrugId&&cs.DrawerNo==boxTakeVo.BoxDetail.DrawerNo && cs.ColNo == boxTakeVo.BoxDetail.ColNo && cs.ManuNo == null).DeleteAsync();
if (mid > 0 && r > 0 && boxID > 0 && boxMId > 0)
{
if (boxTakeVo.ChannelStock.BoardType.ToString().Contains("5"))
@ -1405,82 +1411,107 @@ namespace MasaBlazorApp3.DataAccess.Impl
}
//手术室药盒获取药盒药品及库存信息
public async Task<PageData<PlanDetails>> GetBoxDrugInfo(int DrawerNo, int? take, int? skip)
public async Task<PageData<PlanDetails>> GetBoxDrugInfo(string strDrawerNoCol, int? take, int? skip)
{
var query = _connection.PlanDetails.AsQueryable()
.InnerJoin(
_connection.ChannelList.Where(cl => cl.MachineId == _setting.boxMachineId && cl.DrawerNo.Equals(DrawerNo)),
(pd, cl) => pd.PlanId.ToString() == cl.DrugId,
(pd, cl) => pd).Where(pd => pd.UseState == 1);
int pagedData = await query.CountAsync();
List<PlanDetails> list = await query
.LoadWith(pd => pd._DrugInfo)
//.LoadWith(pd => cl._PlanDetails._DrugInfo)
.OrderBy((pd) => pd.DrugId)
//.ThenBy((cl) => cl.ColNo)
.Skip((int)skip)
.Take((int)take)
.ToListAsync();
if (list != null && list.Count > 0)
if (!string.IsNullOrEmpty(strDrawerNoCol))
{
for (int i = 0; i < list.Count; i++)
int drawerNo = 0;
int colNo = 0;
var spl = strDrawerNoCol.Split('-');
if (spl != null && spl.Count() > 0)
{
list[i].channelStocks = _connection.ChannelStock.AsQueryable()
.Where(cs => cs.MachineId == _setting.boxMachineId && cs.DrawerNo == DrawerNo && cs.DrugId == list[i].DrugId)
.LoadWith(cs => cs.Drug)
.LoadWith(cs => cs.Drug.Manus)
.ToList();
drawerNo = Convert.ToInt32(spl[0]);
colNo = Convert.ToInt32(spl[1]);
}
}
//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<PlanDetails>()
{
TotalDesserts = pagedData,
Desserts = list
};
}
//药盒移库时获取选中药盒号的药品信息
public async Task<PageData<ChannelStock>> GetChannelStockByDrug(ChannelStock cs, int drawerNo, int? take, int? skip)
{
try
{
var query = _connection.ChannelStock.AsQueryable().Where(c => c.MachineId == _setting.boxMachineId && c.DrawerNo.Equals(drawerNo) && c.DrugId.Equals(cs.DrugId) && c.ManuNo != cs.ManuNo && c.EffDate != cs.EffDate);
var query = _connection.PlanDetails.AsQueryable()
.InnerJoin(
_connection.ChannelList.Where(cl => cl.MachineId == _setting.boxMachineId && cl.DrawerNo.Equals(drawerNo) && cl.ColNo.Equals(colNo)),
(pd, cl) => pd.PlanId.ToString() == cl.DrugId,
(pd, cl) => pd).Where(pd => pd.UseState == 1);
int pagedData = await query.CountAsync();
List<ChannelStock> list = await query
.LoadWith(cs => cs.Drug)
.OrderBy((cs) => cs.DrugId)
List<PlanDetails> list = await query
.LoadWith(pd => pd._DrugInfo)
//.LoadWith(pd => cl._PlanDetails._DrugInfo)
.OrderBy((pd) => pd.DrugId)
//.ThenBy((cl) => cl.ColNo)
.Skip((int)skip)
.Take((int)take)
.ToListAsync();
if (list != null && list.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
list[i].channelStocks = _connection.ChannelStock.AsQueryable()
.Where(cs => cs.MachineId == _setting.boxMachineId && cs.DrawerNo == drawerNo && cs.ColNo == colNo && cs.DrugId == list[i].DrugId)
.LoadWith(cs => cs.Drug)
.LoadWith(cs => cs.Drug.Manus)
.ToList();
}
}
return new PageData<ChannelStock>()
//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<PlanDetails>()
{
TotalDesserts = pagedData,
Desserts = list
};
}
else
{
return null;
}
}
//药盒移库时获取选中药盒号的药品信息
public async Task<PageData<ChannelStock>> GetChannelStockByDrug(ChannelStock cs, string strDrawerNoCol, int? take, int? skip)
{
try
{
int drawerNo = 0;
int colNo = 0;
var spl = strDrawerNoCol.Split('-');
if (spl != null && spl.Count() > 0)
{
drawerNo = Convert.ToInt32(spl[0]);
colNo = Convert.ToInt32(spl[1]);
}
var query = _connection.ChannelStock.AsQueryable().Where(c => c.MachineId == _setting.boxMachineId && c.DrawerNo.Equals(drawerNo) && c.ColNo.Equals(colNo) && c.DrugId.Equals(cs.DrugId) && c.ManuNo != cs.ManuNo && c.EffDate != cs.EffDate);
int pagedData = await query.CountAsync();
List<ChannelStock> list = await query
.LoadWith(cs => cs.Drug)
.OrderBy((cs) => cs.DrugId)
.Skip((int)skip)
.Take((int)take)
.ToListAsync();
return new PageData<ChannelStock>()
{
TotalDesserts = pagedData,
Desserts = list
};
}
catch (Exception ex)
{
logger.Info($"药盒移库时获取选中药盒号的药品信息异常:{ex.Message}");
@ -1494,21 +1525,21 @@ namespace MasaBlazorApp3.DataAccess.Impl
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
public async Task<int[]> GetDrawerNum(ChannelStock channelStock)
public async Task<string[]> GetDrawerNum(ChannelStock channelStock)
{
int[] ints = _connection.ChannelStock.Where(cs => cs.MachineId == channelStock.MachineId && cs.DrugId == channelStock.DrugId && cs.DrawerNo != channelStock.DrawerNo && !string.IsNullOrEmpty(cs.ManuNo) && cs.ManuNo != channelStock.ManuNo)
.GroupBy(cs => cs.DrawerNo).Select(cs => cs.Key).ToArray();
return ints;
string[] stringArray = _connection.ChannelStock.Where(cs => cs.MachineId == channelStock.MachineId && cs.DrugId == channelStock.DrugId && cs.DrawerNo != channelStock.DrawerNo && !string.IsNullOrEmpty(cs.ManuNo) && cs.ManuNo != channelStock.ManuNo)
.GroupBy(cs =>new { cs.DrawerNo, cs.ColNo }).Select(cs => cs.Key.DrawerNo.ToString()+"-"+cs.Key.ColNo.ToString()).ToArray();
return stringArray;
}
/// <summary>
/// 药盒移除药品,获取所有除本药盒外的所有包含该药品的药盒号
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
public async Task<int[]> GetDrawerNumForRemove(ChannelStock channelStock)
public async Task<string[]> GetDrawerNumForRemove(ChannelStock channelStock)
{
int[] ints = _connection.ChannelStock.Where(cs => cs.MachineId == channelStock.MachineId && cs.DrugId == channelStock.DrugId && cs.DrawerNo != channelStock.DrawerNo).GroupBy(cs => cs.DrawerNo).Select(cs => cs.Key).ToArray();
return ints;
string[] stringArray = _connection.ChannelStock.Where(cs => cs.MachineId == channelStock.MachineId && cs.DrugId == channelStock.DrugId && cs.DrawerNo != channelStock.DrawerNo&&cs.ColNo!=channelStock.ColNo).GroupBy(cs => new { cs.DrawerNo, cs.ColNo }).Select(cs => cs.Key.DrawerNo.ToString()+"-"+cs.Key.ColNo.ToString()).ToArray();
return stringArray;
}
//手术室药盒交换药品完成
public async Task<bool> BoxReplaceFinish(ChannelStock stock, List<ChannelStock> stockList)

View File

@ -102,14 +102,15 @@ namespace MasaBlazorApp3.DataAccess.Impl
public async Task<PageData<MachineRecord>> GetMachineRecordAsync(DateTime start, DateTime end, int operatorId, string drugId, int type, int? take, int? skip)
{
var query = _connection.MachineRecord.AsQueryable().Where(it => it.MachineId.Equals(_setting.machineId));
var query = from mr in _connection.MachineRecord select mr;
if (start != null && start != DateTime.MinValue)
{
query = query.Where(mr => mr.OperationTime > start);
}
if (end != null && end != DateTime.MinValue)
{
query = query.Where(mr => mr.OperationTime < end);
query = query.Where(mr => mr.OperationTime < end.AddDays(1));
}
if (operatorId != 0)
{
@ -123,14 +124,48 @@ namespace MasaBlazorApp3.DataAccess.Impl
{
query = query.Where(mr => mr.DrugId == drugId);
}
query =from mr in query
from dr in _connection.DrugInfo.Where(d => d.DrugId == mr.DrugId)
from us in _connection.User.Where(u => u.Id == mr.Operator)
select MachineRecord.Build(mr, dr, us);
int pagedData = await query.CountAsync();
List<MachineRecord> MachineRecords = await query.LoadWith(mr => mr.Drug)
.LoadWith(mr => mr.OperatorUser)
List<MachineRecord> MachineRecords = await query
.OrderByDescending(mr => mr.OperationTime)
.Skip((int)skip)
.Take((int)take)
.ToListAsync();
//var query = _connection.MachineRecord.AsQueryable().Where(it => it.MachineId.Equals(_setting.machineId));
//if (start != null && start != DateTime.MinValue)
//{
// query = query.Where(mr => mr.OperationTime > start);
//}
//if (end != null && end != DateTime.MinValue)
//{
// query = query.Where(mr => mr.OperationTime < end.AddDays(1));
//}
//if (operatorId != 0)
//{
// query = query.Where(mr => mr.Operator == operatorId);
//}
//if (type != 0)
//{
// query = query.Where(mr => mr.Type == type);
//}
//if (!String.IsNullOrEmpty(drugId))
//{
// query = query.Where(mr => mr.DrugId == drugId);
//}
//int pagedData = await query.CountAsync();
//List<MachineRecord> MachineRecords = await query.LoadWith(mr => mr.Drug)
// .LoadWith(mr => mr.OperatorUser)
// .OrderByDescending(mr => mr.OperationTime)
// .Skip((int)skip)
// .Take((int)take)
// .ToListAsync();
return new PageData<MachineRecord>() { Desserts = MachineRecords, TotalDesserts = pagedData };
}

View File

@ -43,6 +43,7 @@ namespace MasaBlazorApp3.DataAccess.Impl
public async Task<PageData<OrderInfo>> GetAllOrderInfo(string OrderrNo, DateTime OrderDate, int? take, int? skip)
{
//var query = _connection.OrderInfo.AsQueryable();
//query.InnerJoin<OrderDetail>((oi, od) => oi.OrderNo == od.OrderNo);
@ -762,10 +763,31 @@ namespace MasaBlazorApp3.DataAccess.Impl
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
public async Task<int[]> GetDrawerNum(string machineId)
public async Task<List<ChannelStock>> GetDrawerNum(string machineId)
{
int[] ints = _connection.ChannelStock.Where(cs => cs.MachineId == machineId).GroupBy(cs => cs.DrawerNo).Select(cs => cs.Key).ToArray();
return ints;
List<ChannelStock> stockList = _connection.ChannelStock
.Where(cs => cs.MachineId == machineId)
.GroupBy(cs => new { cs.DrawerNo, cs.ColNo })
.Select(g => new ChannelStock
{
DrawerNo = g.Key.DrawerNo,
ColNo = g.Key.ColNo,
})
.ToList();
return stockList;
}
/// <summary>
/// 获取指定药盒号
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
public async Task<List<BoxModel>> GetDrawerNumByOperationNum(string machineId,List<int> operationNum)
{
List<BoxModel> boxModelList = new List<BoxModel>();
boxModelList =await _connection.ChannelStock
.Where(cs => cs.MachineId == machineId&& operationNum.Contains(cs.DrawerNo))
.Select(cs => new BoxModel { BoxName = cs.DrawerNo.ToString(), BoxNo = Convert.ToInt32(cs.ColNo) }).ToListAsync();
return boxModelList;
}
//核对处方
public async Task<bool> CheckOrderInfo(IList<OrderInfo> selectedOrderInfos, int DrawerNo)

View File

@ -52,6 +52,9 @@
</ItemGroup>
<ItemGroup>
<Content Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="log4net.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>

View File

@ -109,7 +109,7 @@
<Columns>
<RadzenDataGridColumn Frozen="true" Width="200px" Title="药盒号" Property="DrawerNo">
<Template Context="DrawerNo">
@DrawerNo.DrawerNo 号药盒
@($"{DrawerNo.DrawerNo}-{DrawerNo.ColNo}")
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="总库存" Property="TotalQuantity"></RadzenDataGridColumn>

View File

@ -1,49 +1,73 @@
@page "/Box/BoxBindings123"
@page "/Box/BoxBindings"
<style>
.mycol {
width: calc(100%/7);
margin: 4px !important;
}
</style>
<div class="container-fluid">
<div class="row">
<div class="col-12 mb-4">
@* <RadzenFieldset Text="查询">
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center">
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">选择套餐</RadzenText>
<RadzenDropDownDataGrid AllowVirtualization="true" Name="planName" TValue="Plan" Data="@plans" Value="@selectedPlan" ValueChanged="@OnPlanSelected"
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
<Columns>
<RadzenDropDownDataGridColumn Property="Name" Title="套餐名称" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
<RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@EditChannel" Text="绑定/解绑" />
</RadzenStack>
</RadzenFieldset> *@
<form onsubmit="@(() => EditChannel())">
<RadzenFieldset Text="选择套餐">
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
<RadzenRow AlignItems="AlignItems.Center">
<RadzenDropDownDataGrid AllowVirtualization="true" Name="planName" TValue="Plan" Data="@plans" Value="@selectedPlan" ValueChanged="@OnPlanSelected"
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
<Columns>
<RadzenDropDownDataGridColumn Property="Name" Title="套餐名称" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
</RadzenRow>
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="12">
<RadzenButton ButtonType="ButtonType.Submit" Size="ButtonSize.Medium" Text="绑定/解绑" />
@* <RadzenButton Size="ButtonSize.Medium" Click="@EditChannel" IsBusy="isLoading" Text="解绑" ButtonStyle="ButtonStyle.Warning" /> *@
</RadzenColumn>
</RadzenRow>
</RadzenStack>
</RadzenFieldset>
</form>
</div>
</div>
<div class="row">
<div class="col-12 mb-4">
<RadzenDataList @ref="grid" LoadData="@LoadData" WrapItems="true" Count="@count" IsLoading="@isLoading" Data="@_forecasts" PageSize="6" AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left"
ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} 共{2}条数据">
<RadzenDataList @ref="grid" LoadData="@LoadData" WrapItems="true" Count="@count" IsLoading="@isLoading" Data="@_forecasts" PageSize="54" style="height:61vh; overflow:auto">
<Template Context="channel">
<RadzenCard class="col-3">
<RadzenCard class="mycol" onclick="@(() => CardClick(channel))">
<RadzenRow>
<RadzenColumn Size="8" Class="rz-text-truncate">
<b class="rz-pr-3">@(channel.DrawerNo)</b>
<b>号药盒</b>
<b class="rz-pr-3">@($"{channel.DrawerNo}-{channel.ColNo}")</b>
@* <b>号药盒</b> *@
</RadzenColumn>
<RadzenColumn Size="4" Class="rz-text-align-end">
@if (channel.TotalQuantity == 0)
{
<RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@(() => EditChannel(channel))" Text="绑定/解绑" />
}
<RadzenColumn Size="4" class="rz-text-align-end">
<RadzenCheckBox TValue="bool" Disabled=@channel.BoxDisabled @bind-Value=@channel.IsChecked />
</RadzenColumn>
</RadzenRow>
<hr style="border: none; background-color: rgba(0,0,0,.2); height: 1px; margin: 1rem 0;" />
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center">
<RadzenStack Gap="0">
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-2 rz-my-0">套餐</RadzenText>
@if (channel.DrugId == null || channel.TotalQuantity == 0)
{
<RadzenDropDownDataGrid AllowVirtualization="true" Name="planName" TValue="Plan" @bind-Value="channel.PlanInfo" Data="@plans"
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="Name">
<Columns>
<RadzenDropDownDataGridColumn Property="Name" Title="套餐名称" Sortable="false" />
<RadzenDropDownDataGridColumn Property="Description" Width="120px" Title="套餐描述" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
<RadzenCustomValidator Component="planName" Validator="@(()=>(channel.PlanInfo.Id>0))" Popup=true Text="请先选择套餐再点击绑定按钮" />
}
else
{
<RadzenText TextStyle="TextStyle.Body1"><b>@(channel.PlanInfo.Name)</b></RadzenText>
}
<RadzenText TextStyle="TextStyle.Body1"><b>@(channel.PlanInfo.Name)</b></RadzenText>
<RadzenText TextStyle="TextStyle.Overline" class="rz-display-flex rz-mt-4 rz-mb-0">总库存</RadzenText>
<RadzenText TextStyle="TextStyle.Body1"><b>@(channel.TotalQuantity)</b></RadzenText>
</RadzenStack>
@ -60,6 +84,7 @@
@inject IDrugInfoDao drugInfoDao;
@inject DialogService dialogService;
@inject NotificationService _message
@inject IPlanDao planDao;
RadzenDataList<ChannelList> grid;
bool isLoading;
int count;
@ -74,22 +99,26 @@
List<Plan> plans;
int firstFlag = 0;
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
var resultPlan = await planDao.GetAllPlanInfo();
plans = resultPlan.Desserts.Where(p => p._PlanDetails.Count > 0).ToList();
firstFlag = 0;
//drugInfos = await drugInfoDao.GetAllDrug();
}
async Task LoadData(LoadDataArgs args)
{
isLoading = true;
var result = await channelListDao.GetAllChannelListWithPlan(args.Top, args.Skip);
// Update the Data property
_forecasts = result.Desserts;
// Update the count
count = result.TotalDesserts;
@ -103,60 +132,120 @@
await grid.Reload();
}
async Task EditChannel(ChannelList list)
// 默认选中的项
private Plan selectedPlan = new();
// 处理选择变更(可选)
private void OnPlanSelected(Plan plan)
{
if (list.PlanInfo.Id > 0)
selectedPlan = plan;
}
//绑定
async Task EditChannel()
{
List<ChannelList> bindList = _forecasts.Where(b => b.IsChecked).ToList();
if (bindList == null || bindList.Count <= 0)
{
// 说明之前有绑定并且未改变,那么就是在进行解绑
if (list.DrugId != null && list.DrugId.Equals(list.PlanInfo.Id.ToString()))
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请先选择药箱号再点击按钮", Duration = 4000 }
);
return;
}
if (!string.IsNullOrEmpty(bindList[0].DrugId))
{
//之前有绑定,在进行解绑
foreach (var item in bindList)
{
var b = await channelListDao.UnBindBox(list);
var b = await channelListDao.UnBindBox(item);
if (b)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"解除绑定成功", Duration = 4000 }
);
await reloadGrid();
}
}
// 否则是进行绑定
else
{
var b = await channelListDao.BindBox(list);
if (b)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
);
await reloadGrid();
}
await grid.Reload();
}
}
else
{
if (list.PlanInfo != null)
{// 否则是进行解绑
if (selectedPlan != null && selectedPlan.Id > 0)
{
// 说明只设置了药品
var b = await channelListDao.BindBox(list);
if (b)
foreach (var item in bindList)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
);
await reloadGrid();
var b = await channelListDao.BindBox(item, selectedPlan);
if (b)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"绑定成功", Duration = 4000 }
);
}
}
await grid.Reload();
}
// 什么都没有选择或者么有改变,只是点击了按钮,此时不操作
else
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请选择套餐", Duration = 4000 }
);
}
}
}
async Task CardClick(ChannelList list)
{
if (firstFlag == 0 && !(list.BoxDisabled))
{
firstFlag = 1;
if (!string.IsNullOrEmpty(list.DrugId))
{
list.IsChecked = !list.IsChecked;
//已绑药品需要解绑,未绑定的不可选
if (list.IsChecked)
{
_forecasts.Where(it => it.DrugId != list.DrugId || it.TotalQuantity > 0).ToList().ForEach(it => it.BoxDisabled = true);
selectedPlan = await planDao.GetPlanById(Convert.ToInt32(list.DrugId));
}
else
{
_forecasts.Where(it => it.TotalQuantity <= 0).ToList().ForEach(it => it.BoxDisabled = false);
firstFlag = 0;
}
}
else
{
list.IsChecked = !list.IsChecked;
//未绑定药品则已绑定的不可选
if (list.IsChecked)
{
_forecasts.Where(it => !string.IsNullOrEmpty(it.DrugId) || it.TotalQuantity > 0).ToList().ForEach(it => it.BoxDisabled = true);
}
else
{
_forecasts.ToList().Where(it => it.TotalQuantity <= 0).ToList().ForEach(it => it.BoxDisabled = false);
firstFlag = 0;
}
}
}
else
{
if (!list.BoxDisabled)
{
list.IsChecked = !list.IsChecked;
}
//isChecked==false 1)是否全部是false是则将所有isChecked==true不是则不做改变
if (!_forecasts.Any(b => b.IsChecked == true))
{
_forecasts.Where(it => it.TotalQuantity <= 0).ToList().ForEach(it => it.BoxDisabled = false);
firstFlag = 0;
}
}
await InvokeAsync(StateHasChanged);
}
}

View File

@ -1,9 +1,9 @@
@page "/Box/BoxBindings"
@page "/Box/BoxBindings123"
<div class="container-fluid">
<div class="row">
<RadzenFieldset class="col-12 mb-4 justify-content-around align-items-center" style="overflow:auto" Text="选择药盒">
<RadzenFieldset class="col-12 mb-4" Text="选择药盒">
<div class="col-12 row justify-content-center align-items-center text-center">
<div class="row justify-content-around align-items-center" style="overflow:auto">
@if (BoxList != null)
@ -12,14 +12,22 @@
{
<div class="col-2">
<RadzenCheckBox Style="width:40px;height:40px;margin:2px" TValue="bool" Disabled=@item.BoxDisabled @bind-Value=@item.IsChecked Name="@($"CheckBox_{item.DrawerNo}")" Change="@((bool isChecked) => OnCheckBoxChange(isChecked, item.DrawerNo))" />
<RadzenLabel Text=@item.DrawerNo.ToString() Component="@($"CheckBox_{item.DrawerNo}")" />
@if(item.DrawerNo<51)
{
<RadzenLabel Text="@($"{(item.DrawerNo % 2 == 0 ? item.DrawerNo : item.DrawerNo+1)/2}-{(item.DrawerNo % 2 == 0 ? 2 : 1)}")" Component="@($"CheckBox_{item.DrawerNo}")" />
}
else
{
<RadzenLabel Text="@($"{item.DrawerNo -25}")" Component="@($"CheckBox_{item.DrawerNo}")" />
}
</div>
}
}
</div>
</div>
</RadzenFieldset>
<RadzenCard class="col-12 mb-4">
<RadzenCard class="col-12 mb-2">
<RadzenButton ButtonStyle="ButtonStyle.Secondary" Variant="Variant.Outlined" Size="ButtonSize.Small" Click="@EditChannel" Text="绑定/解绑" />
<hr style="border: none; background-color: rgba(0,0,0,.2); height: 1px; margin: 1rem 0;" />
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center">

View File

@ -51,11 +51,11 @@
@inject PortUtil PortUtil;
private readonly ILog logger = LogManager.GetLogger(typeof(OrderDetailDialog));
int removeQuantity;
string removeQuantity = "1-1";
int status;
int[] DrawerNos;
int SelectedDrawerNo = 0;
string[] DrawerNos;
string SelectedDrawerNo = "1-1";
[Parameter] public ChannelStock channelStock { get; set; }
private bool CanTakeDrug = true;
@ -102,12 +102,12 @@
}
async Task Save()
{
if (removeQuantity<=0)
if (string.IsNullOrEmpty(removeQuantity))
{
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = "请输入移入数量", Duration = 4000 });
return;
}
if (SelectedDrawerNo<=0)
if (string.IsNullOrEmpty(SelectedDrawerNo))
{
_message.Notify(new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = "无可移入的药盒", Duration = 4000 });
return;

View File

@ -68,8 +68,8 @@
int status;
bool isLoading;
int count;
int[] DrawerNos;
int SelectedDrawerNo=0;
string[] DrawerNos;
string SelectedDrawerNo="";
[Parameter] public ChannelStock channelStock { get; set; }
private bool CanTakeDrug = true;

View File

@ -4,9 +4,9 @@
<RadzenStack Orientation="Orientation.Horizontal" class="col-12 mb-4">
<div class="col-2 row justify-content-center align-items-center text-center" >
<div class="row justify-content-around align-items-center" style="height:600px;overflow:auto">
@foreach (int i in DrawerNos)
@foreach (var cs in channelStockList)
{
<RadzenButton class="col-12" Style="margin-bottom:5px" Click="@(() => SelectDrawer(i))" Text="@i.ToString()" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo != i ? Variant.Outlined : Variant.Flat)" />
<RadzenButton class="col-12" Style="margin-bottom:5px" Click="@(() => SelectDrawer((cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString())))" Text="@($"{cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()}")" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo != (cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()) ? Variant.Outlined : Variant.Flat)" />
}
</div>
@ -122,13 +122,14 @@
bool isLoading;
int count;
int[] DrawerNos = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
List<ChannelStock> channelStockList = new();
int status = 0;
int drawerNo = 1;
string drawerNo="1-1";
string OrderNo;
DateTime OrderDate;
void SelectDrawer(int drawerNo)
void SelectDrawer(string strDrawerNoColNo)
{
this.drawerNo = drawerNo;
this.drawerNo = strDrawerNoColNo;
grid.Reload();
}
// void OnCurrentDateChanged(DateTime args)
@ -160,7 +161,7 @@
isLoading = false;
DrawerNos = await orderInfoDao.GetDrawerNum(setting.Value.boxMachineId);
channelStockList = await orderInfoDao.GetDrawerNum(setting.Value.boxMachineId);
}
//替换按钮
async Task replaceClick(ChannelStock cs)

View File

@ -308,7 +308,7 @@
}
if(OrderDate != null && OrderDate != DateTime.MinValue)
{
orderInfos = orderInfos.Where(it => it.OrderDate.Date == OrderDate.Value.Date);
orderInfos = orderInfos.Where(it => it.ChargeDate.Date == OrderDate.Value.Date);
// Update the count
count = orderInfos.Count();
}
@ -320,15 +320,16 @@
}
if (Name != null && OrderDate != null && OrderDate != DateTime.MinValue && !string.IsNullOrEmpty(OrderNo))
{
orderInfos = orderInfos.Where(it => it.anaesthetistName == Name.Name && it.OrderDate.Date == OrderDate.Value.Date && it.OrderNo.Contains(OrderNo));
orderInfos = orderInfos.Where(it => it.anaesthetistName == Name.Name && it.ChargeDate.Date == OrderDate.Value.Date && it.OrderNo.Contains(OrderNo));
// Update the count
count = orderInfos.Count();
}
orderInfos = orderInfos.Skip(args.Skip.Value).Take(args.Top.Value).ToList();
//查找该麻醉师对应的手术室
List<string> roomNameList = orderInfos.Select(it => it.RoomName).Distinct().ToList();
BoxList = roomNameList.Select(it => new BoxModel { BoxName = it, BoxNo = Convert.ToInt32(it.Substring(it.Length - 2, 2)) }).ToList();
//List<string> roomNameList = orderInfos.Select(it => it.RoomName).Distinct().ToList();
List<int> roomNameList = orderInfos.Select(it => Convert.ToInt32(it.RoomName.Substring(it.RoomName.Length - 2, 2))).ToList();
BoxList = await orderInfoDao.GetDrawerNumByOperationNum(setting.Value.machineId, roomNameList); //roomNameList.Select(it => new BoxModel { BoxName = it, BoxNo = Convert.ToInt32(it.Substring(it.Length - 2, 2)) }).ToList();
BoxNum = BoxList.FirstOrDefault();
@ -339,14 +340,14 @@
//麻醉药品使用登记本导出
async Task StockExport()
{
if (OrderDate == DateTime.MinValue)
if (PortOrderDate == DateTime.MinValue)
{
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"请选择处方时间再导出", Duration = 4000 }
);
return;
}
PageData<ReportUsageDateInfo> pageData = await reportDataDao.GetOrderInfoData(OrderDate);
PageData<ReportUsageDateInfo> pageData = await reportDataDao.GetOrderInfoData(PortOrderDate);
GridReportUtil.PrintReport("Usage_Temp.grf", pageData);
}
// protected override async Task OnInitializedAsync()

View File

@ -65,8 +65,8 @@
<RadzenDataGridColumn Width="70px" Title="库位" Property="ColNo"></RadzenDataGridColumn>
<RadzenDataGridColumn Width="130px" Title="药品名称" Property="Drug.DrugName">
<Template Context="channel">
<RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug.DrugName</RadzenText>
<RadzenText TextStyle="TextStyle.Caption">@channel.Drug.DrugSpec</RadzenText>
<RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@channel.Drug?.DrugName</RadzenText>
<RadzenText TextStyle="TextStyle.Caption">@channel.Drug?.DrugSpec</RadzenText>
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Width="110px" Title="批次" Property="ManuNo">

View File

@ -230,6 +230,7 @@
}
else
{
logger.Info($"{setting.Value.autoOutLog}未自动退出{(DateTime.Now - _portUtil.dateTime).TotalSeconds}-{CheckComputerFreeState.GetLastInputTime()}");
next();
}
}

View File

@ -1,6 +1,5 @@
@page "/take/order"
<div class="container-fluid">
<div class="row">
<div class="col-12 mb-4">
@ -65,6 +64,7 @@
@code {
@inject IOrderInfoDao orderInfoDao;
@inject DialogService dialogService;
RadzenDataGrid<OrderInfo> grid;
bool isLoading;
int count;

View File

@ -158,8 +158,8 @@
byte[] quantity = await PortUtil.CheckQuantityByDrawer(drawerNo);
BeforeQuantity = quantity.Select(it => Convert.ToInt32(it)).ToArray().Skip(3).Take(9).ToArray();
logger.Info($"单支抽屉【{drawerNo}】,开抽屉前检测数量【{string.Join(",", BeforeQuantity)}】");
await PortUtil.NoLightOnByCol(drawerNo, data.Select(ot => ot.ChannelStocks.Where(cs => cs.DrawerNo == drawerNo).Select(cs => cs.ColNo)).Cast<int>().ToArray());
var colNo=data.Select(ot => ot.ChannelStocks.Where(cs => cs.DrawerNo == drawerNo).Select(cs => cs.ColNo));
await PortUtil.NoLightOnByCol(drawerNo, colNo.SelectMany(x => x).ToArray());
}
var b = await PortUtil.OpenDrawerStatus(drawerNo);
if (b)
@ -233,7 +233,7 @@
catch (Exception e)
{
RestData();
logger.Info($"调拨加药发生错误,{e.Message}");
logger.Info($"药发生错误,{e.Message}");
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"发生错误,{e.Message}", Duration = 4000 }
);

View File

@ -142,10 +142,10 @@
@if (channel.DrugId == null || channel.Quantity == 0)
{
<RadzenDropDownDataGrid Change="@((args) => { channel.drugManuNo = null; })" AllowVirtualization="true" Name="@("Drug_" + channel.Id)" TValue="DrugInfo" @bind-Value="channel.Drug" Data="@drugInfos"
Style="width:100%; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="DrugName">
Style="width:260px; display: block;" AllowFilteringByAllStringColumns="true" TextProperty="DrugName">
<Columns>
<RadzenDropDownDataGridColumn Property="DrugId" Title="药品编码" Sortable="false" />
<RadzenDropDownDataGridColumn Property="DrugName" Width="120px" Title="名称" Sortable="false" />
<RadzenDropDownDataGridColumn Property="DrugName" Title="名称" Sortable="false" />
<RadzenDropDownDataGridColumn Property="DrugSpec" Title="规格" Sortable="false" />
</Columns>
</RadzenDropDownDataGrid>
@ -209,8 +209,7 @@
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
await base.OnInitializedAsync();
//drugInfos = await drugInfoDao.GetAllDrug();
}

View File

@ -28,5 +28,7 @@ namespace MasaBlazorApp3.Pojo.Config
public bool fridgePortExist { get; set; }
//冰箱串口号
public string fridgePortPath { get; set; }
//储物箱串口
public int StorageCan { get; set; }
}
}

View File

@ -146,5 +146,15 @@ namespace MasaBlazorApp3.Pojo
{
get => DrawerNo + "-" + ColNo;
}
public static MachineRecord Build(MachineRecord machineRecord,DrugInfo drug,User user)
{
if(machineRecord!=null)
{
machineRecord.Drug = drug;
machineRecord.OperatorUser = user;
}
return machineRecord;
}
}
}

View File

@ -231,14 +231,14 @@ namespace MasaBlazorApp3.Port
{
//if (DrawerNo > 8)
//{
if (DrawerNo % 2 == 0)
{
buffer = new byte[] { 0xaa, 0x22, 0xee };
}
else
{
buffer = new byte[] { 0xaa, 0x12, 0xee };
}
if (DrawerNo % 2 == 0)
{
buffer = new byte[] { 0xaa, 0x22, 0xee };
}
else
{
buffer = new byte[] { 0xaa, 0x12, 0xee };
}
//}
//else
//{
@ -293,12 +293,22 @@ namespace MasaBlazorApp3.Port
// 打开电控门储物箱(有灯使能)
public async Task<byte[]> OpenStorage()
{
canBusSerial.DiscardInBuffer();
byte[] buffer = new byte[] { 0xaa, (byte)(_portConfig.doorAddr), 0x01, (byte)_portConfig.storageBoxAddr, 0x00, 0x00, 0x00, 0xee };
canBusSerial.Write(buffer, 0, 8);
if (_portConfig.StorageCan == 2)
{
canBusSerial.DiscardInBuffer();
byte[] buffer = new byte[] { 0xaa, (byte)(_portConfig.doorAddr), 0x01, (byte)_portConfig.storageBoxAddr, 0x00, 0x00, 0x00, 0xee };
canBusSerial.Write(buffer, 0, 8);
return await GetBufferByPort(canBusSerial, 8);
}
else
{
canBusSerialTwo.DiscardInBuffer();
byte[] buffer = new byte[] { 0xaa, (byte)(_portConfig.doorAddr), 0x01, (byte)_portConfig.storageBoxAddr, 0x00, 0x00, 0x00, 0xee };
canBusSerialTwo.Write(buffer, 0, 8);
return await GetBufferByPort(canBusSerialTwo, 8);
}
return await GetBufferByPort(canBusSerial, 8);
}
// 关闭电控门储物箱(有灯失能)
public void CloseStorage()

View File

@ -54,7 +54,7 @@ internal class Program
// 数据库
appBuilder.Services.AddLinqToDBContext<AppDataConnection>((provider, options) =>
options.UseMySql(config.GetValue<String>("connectionStrings"))
.UseDefaultLogging(provider));
.UseDefaultLogging(provider), ServiceLifetime.Scoped);
// dao层数据库操作
appBuilder.Services.AddScoped<IUserDao, UserDao>();
appBuilder.Services.AddScoped<IRoleDao, RoleDao>();

View File

@ -1,5 +1,5 @@
{
"connectionStrings": "server=127.0.0.1;port=3306;database=zhongbuzhanqu;userid=root;password=qq1223;Charset=utf8mb4;",
"connectionStrings": "server=127.0.0.1;port=3306;database=zbzq;userid=root;password=qq1223;Charset=utf8mb4;",
"finger": {
"ip": "192.168.50.59",
"port": 4370,
@ -25,6 +25,7 @@
"canBusPortPath": "COM5",
"totalDrawerCount": 16,
"canBusTwoExsit": true,
"StorageCan": 1,
//can线
"canBusPortPathTwo": "COM31",
"doorAddr": 0,

View File

@ -0,0 +1,58 @@
DELETE from channel_list where machine_id='DM5';
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_1','DM5',1,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_1','DM5',1,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_2','DM5',2,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_2','DM5',2,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_3','DM5',3,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_3','DM5',3,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_4','DM5',4,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_4','DM5',4,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_5','DM5',5,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_5','DM5',5,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_6','DM5',6,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_6','DM5',6,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_7','DM5',7,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_7','DM5',7,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_8','DM5',8,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_8','DM5',8,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_9','DM5',9,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_9','DM5',9,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_10','DM5',10,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_10','DM5',10,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_11','DM5',11,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_11','DM5',11,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_12','DM5',12,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_12','DM5',12,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_13','DM5',13,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_13','DM5',13,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_14','DM5',14,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_14','DM5',14,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_15','DM5',15,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_15','DM5',15,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_16','DM5',16,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_16','DM5',16,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_17','DM5',17,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_17','DM5',17,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_18','DM5',18,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_18','DM5',18,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_19','DM5',19,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_19','DM5',19,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_20','DM5',20,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_20','DM5',20,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_21','DM5',21,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_21','DM5',21,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_22','DM5',22,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_22','DM5',22,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_23','DM5',23,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_23','DM5',23,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_24','DM5',24,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_24','DM5',24,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_25','DM5',25,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_25','DM5',25,2);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_26','DM5',26,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_27','DM5',27,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_28','DM5',28,1);
INSERT into channel_list(chnguid,machine_id,row_no,col_no) values('DM5_CHANNEL_29','DM5',29,1);
delete from channel_stock where machine_id='DM5'

Binary file not shown.

Binary file not shown.