库位禁用启用

master
1 year ago
parent 77ed289283
commit 4f0df37ca5

@ -1,10 +1,12 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Khd.Core.Domain.Models
{
[Table("dms_base_alarm_rule")]
public class DmsBaseAlarmRule
{
[Key]
[Column("alarm_rule_id")]
public long AlarmRuleId { get; set; }

@ -1,10 +1,12 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Khd.Core.Domain.Models
{
[Table("dms_base_device_ledger")]
public class DmsBaseDeviceLedger
{
[Key]
[Column("device_id")]
public long DeviceId { get; set; }

@ -1,4 +1,5 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Khd.Core.Domain.Models
@ -6,6 +7,7 @@ namespace Khd.Core.Domain.Models
[Table("dms_record_alarm_info")]
public class DmsRecordAlarmInfo
{
[Key]
[Column("alarm_id")]
public long AlarmId { get; set; }

@ -1,4 +1,5 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Khd.Core.Domain.Models
@ -6,6 +7,7 @@ namespace Khd.Core.Domain.Models
[Table("dms_record_alarm_time")]
public class DmsRecordAlarmTime
{
[Key]
[Column("alarm_id")]
public long AlarmId { get; set; }

@ -23,11 +23,11 @@ namespace Khd.Core.Domain.Models
[Column("material_subclass")]
public string MaterialSubclass { get; set; }
[Column("material_type_id")]
public string MaterialTypeId { get; set; }
public int? MaterialTypeId { get; set; }
[Column("batch_flag")]
public string BatchFlag { get; set; }
[Column("batch_amount")]
public int? BatchAmount { get; set; }
public decimal? BatchAmount { get; set; }
[Column("material_unit_id")]
public long? MaterialUnitId { get; set; }
[Column("material_unit")]
@ -43,7 +43,7 @@ namespace Khd.Core.Domain.Models
//[Column("bind_flag")]
//public string BindFlag { get; set; }
[Column("factory_id")]
public string FactoryId { get; set; }
public int? FactoryId { get; set; }
[Column("create_org_id")]
public long? CreateOrgId { get; set; }
[Column("use_org_id")]
@ -51,9 +51,9 @@ namespace Khd.Core.Domain.Models
[Column("prodline_id")]
public int? ProdlineId { get; set; }
[Column("active_flag")]
public int? ActiveFlag { get; set; }
public string ActiveFlag { get; set; }
[Column("deleted_flag")]
public int? DeletedFlag { get; set; }
public string DeletedFlag { get; set; }
[Column("remark")]
public string Remark { get; set; }
[Column("purchase_price_unit_id")]

@ -224,6 +224,12 @@ namespace Khd.Core.Domain.Models
[Column("container_status")]
public string ContainerStatus { get; set; }
/// <summary>
/// 异常描述
/// </summary>
[Column("exception_desc")]
public string ExceptionDesc { get; set; }
}
}

@ -39,7 +39,7 @@ namespace Khd.Core.Wcs
if (wmsBaseLocation.locDeep == 1)
{
WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 2 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault();
if (wmsLocation != null)
if (wmsLocation != null && wmsLocation.locationStatus == "1")
{
wmsLocation.locationStatus = "2";
dbContext.Update(wmsLocation);
@ -57,7 +57,40 @@ namespace Khd.Core.Wcs
if (wmsBaseLocation.locDeep == 1)
{
WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 2 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault();
if (wmsLocation != null)
if (wmsLocation != null && wmsLocation.locationStatus != "3" && wmsLocation.locationStatus != "9")
{
wmsLocation.locationStatus = "1";
dbContext.Update(wmsLocation);
}
}
}
/// <summary>
/// 报警库位
/// </summary>
public static void AlarmLocation(WmsBaseLocation wmsBaseLocation, DefaultDbContext dbContext)
{
if (wmsBaseLocation.locDeep == 2)
{
WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 1 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault();
if (wmsLocation != null && wmsLocation.locationStatus != "3")
{
wmsLocation.locationStatus = "8";
wmsLocation.ExceptionDesc = "外侧库位异常导致内测库位异常";
dbContext.Update(wmsLocation);
}
}
}
/// <summary>
/// 解除报警库位
/// </summary>
public static void UnAlarmLocation(WmsBaseLocation wmsBaseLocation, DefaultDbContext dbContext)
{
if (wmsBaseLocation.locDeep == 2)
{
WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 1 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault();
if (wmsLocation != null && wmsLocation.locationStatus == "8")
{
wmsLocation.locationStatus = "1";
dbContext.Update(wmsLocation);

@ -966,73 +966,99 @@
Width="1714"
Height="1060"
Background="#213269" Margin="0,-15,0,0" >
<TextBlock
Width="125"
Height="70"
Margin="-1500,20,0,-100"
Text="物料编码 :"
FontSize="25"
Foreground="White"
/>
<Border
></Border>
<TextBox x:Name="lba_ThrifTtitle5" Style="{StaticResource XingHaoBianMaYangShi}" IsEnabled="true"
Width="180" Height="50" Margin="-1150,-8,0,-100"></TextBox>
<TextBlock
Width="125"
Height="70"
Margin="-800,20,0,-100"
Text="库位 :"
FontSize="25"
Foreground="White"
/>
<Border></Border>
<TextBox x:Name="lba_ThrifTtitle6" Style="{StaticResource XingHaoBianMaYangShi}" IsEnabled="true"
Width="180" Height="50" Margin="-550,-8,0,-100"></TextBox>
<TextBlock Width="125" Height="70" Margin="-100,20,0,-100" Text="仓库 :" FontSize="25" Foreground="White"/>
<Border></Border>
<ComboBox x:Name="WarehourseId" DisplayMemberPath="warehouseName" Height="50" Margin="140,0,0,-100" Width="200" FontSize="25" />
<Button Content="搜索" FontSize="25" Margin="600,-8,0,-100" Foreground="White" Height="50" Width="132" Click="btnGetStocK_Click">
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4">
<Border.Background>#346DFF</Border.Background>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<!-- 订单信息 -->
<Grid Width="1711" Height="1070" HorizontalAlignment="Left">
<StackPanel Orientation="Horizontal" >
<TextBlock VerticalAlignment="Center" Margin="10" Text="仓库:"/>
<ComboBox x:Name="WarehourseId" DisplayMemberPath="warehouseName" Height="50" Width="200" FontSize="25" Margin="5"/>
<TextBlock Text="库位 :" FontSize="25" VerticalAlignment="Center" Foreground="White" />
<TextBox x:Name="lba_ThrifTtitle6" Style="{StaticResource XingHaoBianMaYangShi}" IsEnabled="true" Width="180" Height="50"></TextBox>
<TextBlock Text="库位状态 :" FontSize="25" VerticalAlignment="Center" Foreground="White" />
<ComboBox x:Name="locationStatus" Height="50" Width="200" FontSize="25" Margin="5">
<ComboBoxItem Content="" Tag="" />
<ComboBoxItem Content="正常" Tag="1" />
<ComboBoxItem Content="自动锁定" Tag="2" />
<ComboBoxItem Content="人工锁定" Tag="3" />
<ComboBoxItem Content="移库锁定" Tag="4" />
<ComboBoxItem Content="合库锁定" Tag="5" />
<ComboBoxItem Content="出库锁定" Tag="6" />
<ComboBoxItem Content="因外侧库位异常导致内侧库位无法使用" Tag="8" />
<ComboBoxItem Content="异常库位" Tag="9" />
</ComboBox>
<Button Content="搜索" FontSize="25" Margin="10" Foreground="White" Height="50" Width="132" Click="btnGetStocK_Click">
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4">
<Border.Background>#346DFF</Border.Background>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<Button Content="锁定库位" FontSize="25" Margin="10" Foreground="White" Height="50" Width="132" Click="LockLocation_Click">
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4">
<Border.Background>#346DFF</Border.Background>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<Button Content="解锁库位" FontSize="25" Margin="10" Foreground="White" Height="50" Width="132" Click="UnLockLocation_Click">
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4">
<Border.Background>#346DFF</Border.Background>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</StackPanel>
<Grid HorizontalAlignment="Left" Height="1000">
<Grid.RowDefinitions>
<RowDefinition Height="10*"/>
<RowDefinition Height="88*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="1">
<Grid Grid.Row="0" >
<DataGrid
x:Name="LoadMaterial1"
AlternationCount="2"
AutoGenerateColumns="False"
Background="#172557"
CanUserAddRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
Focusable="False"
HeadersVisibility="Column"
IsReadOnly="True"
LoadingRow="dgData_LoadingRow"
RowHeaderWidth="0"
SelectionMode="Single" FontSize="16" HorizontalAlignment="Left" Width="1711" Margin="0,0,0,10"
x:Name="LoadMaterial1"
AlternationCount="2"
AutoGenerateColumns="False"
Background="#172557"
CanUserAddRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
Focusable="False"
HeadersVisibility="Column"
IsReadOnly="True"
LoadingRow="dgData_LoadingRow"
RowHeaderWidth="0"
SelectionMode="Single" FontSize="16" HorizontalAlignment="Left"
>
<DataGrid.Columns>
<DataGridTemplateColumn Width="130*" Header="选择">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.Tag>
<Binding Path="IsSelected"/>
</Grid.Tag>
<CheckBox
Style="{StaticResource CheckBoxStyle}"
Click="LocationPersonBox_Click"
/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
x:Name="orderControlData"
Width="100"
MinWidth="10"
Header=" 序号"
IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
@ -1045,9 +1071,34 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn
Width="300*"
Binding="{Binding LocationCode}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="库位"
IsReadOnly="True" />
<DataGridTextColumn
Width="200*"
Binding="{Binding materialId}"
Binding="{Binding ContainerCode}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="RFID"
IsReadOnly="True" />
<DataGridTextColumn
Width="180*"
Binding="{Binding LocationStatus}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="库位状态"
IsReadOnly="True" />
<DataGridTextColumn
Width="200*"
Binding="{Binding MaterialId}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
@ -1056,39 +1107,32 @@
<DataGridTextColumn
Width="200*"
Binding="{Binding instockBatch}"
Binding="{Binding SaleOrderId}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="批次号"
Header="销售订单"
IsReadOnly="True" />
<DataGridTextColumn
<!--<DataGridTextColumn
Width="180*"
Binding="{Binding warehouseId}"
Binding="{Binding WarehouseId}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="仓库"
IsReadOnly="True" />
IsReadOnly="True" />-->
<DataGridTextColumn
Width="300*"
Binding="{Binding locationCode}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="库位"
IsReadOnly="True" />
<DataGridTextColumn
Width="180*"
Binding="{Binding floorNo}"
Binding="{Binding FloorNo}"
CanUserSort="False"
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="楼层"
IsReadOnly="True" />
<DataGridTextColumn
<!--<DataGridTextColumn
Width="180*"
Binding="{Binding totalAmount}"
CanUserSort="False"
@ -1111,7 +1155,7 @@
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="冻结数量"
IsReadOnly="True" />
IsReadOnly="True" />-->
</DataGrid.Columns>
@ -1153,7 +1197,7 @@
</DataGrid.ColumnHeaderStyle>
</DataGrid>
</Grid>
<Grid Grid.Row="2" HorizontalAlignment="Center">
<Grid Grid.Row="1" HorizontalAlignment="Center">
<hc:Pagination x:Name="Pagination1" MaxWidth="1500" MaxPageCount="1" Margin="0,0,0,15" PageUpdated="Pagination_PageUpdated" IsJumpEnabled="True" HorizontalAlignment="Center" Width="339" />
</Grid>
</Grid>

@ -11,8 +11,10 @@ using Khd.Core.Wpf.Scan;
using Khd.Core.Wpf.TaskForm;
using Masuit.Tools;
using Masuit.Tools.Logging;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.IdentityModel.Tokens;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@ -28,6 +30,7 @@ using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Threading;
using Z.EntityFramework.Plus;
using static HandyControl.Tools.Interop.InteropValues;
namespace Khd.Core.Wpf.Form
{
@ -36,7 +39,7 @@ namespace Khd.Core.Wpf.Form
/// </summary>
public partial class FormBoardT : Window
{
private List<long> productIds = new List<long>() { 231, 531, 521 };
public static long? UserId = 1;
public static readonly JcSnowId _jcSnowId = new JcSnowId();
private readonly IHost _host;
@ -57,7 +60,7 @@ namespace Khd.Core.Wpf.Form
public List<MesBaseBarcodeInfo> barcodeLsit = new List<MesBaseBarcodeInfo>();
private int pageCount = 15;
private object updateLock = new object();
private readonly List<LocationDto> locationDtos = new List<LocationDto>();
private ObservableCollection<SelectItemModel> itemsControlItems;
//人工叫料选中类
@ -117,7 +120,6 @@ namespace Khd.Core.Wpf.Form
{
itemsControlItems = new ObservableCollection<SelectItemModel>();
itemsControl.ItemsSource = itemsControlItems;
Task.Run(() =>
{
foreach (var plcConfig in SystemData.PlcConfigs)
@ -876,6 +878,7 @@ namespace Khd.Core.Wpf.Form
{
Pagination1.PageIndex = 1;
this.EquipListSelectDy.SelectedIndex = -1;
locationDtos.Clear();
GetBaseLocations();
}
/// <summary>
@ -888,28 +891,54 @@ namespace Khd.Core.Wpf.Form
var scope = _host.Services.CreateScope();
var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var locationCode = lba_ThrifTtitle6.Text;
long materialId = 0;
try
string sql;
if (productIds.Contains(warehouse.warehouseId))
{
materialId = Convert.ToInt64(lba_ThrifTtitle5.Text);
sql = $@"select distinct t1.location_id LocationId,
t1.location_code LocationCode,
t1.location_status LocationStatus,
t1.warehouse_floor FloorNo,
t2.pallet_info_code ContainerCode,
t2.material_id MaterialId,
t2.sale_order_id SaleOrderId
from wms_base_location t1
left join wms_raw_stock t2
on t1.location_code = t2.location_code
where t1.warehouse_id = {warehouse.warehouseId}";
}
catch
else
{
sql = $@"select distinct t1.location_id LocationId,
t1.location_code LocationCode,
t1.warehouse_floor FloorNo,
t1.location_status LocationStatus,
t2.pallet_info_code ContainerCode,
t2.product_id MaterialId,
t2.sale_order_id SaleOrderId
from wms_base_location t1
left join wms_product_stock t2
on t1.location_code = t2.location_code
where t1.warehouse_id = {warehouse.warehouseId}";
}
int sum = dbContext.WmsRawStock
.WhereIf(!string.IsNullOrEmpty(lba_ThrifTtitle6.Text), t => t.locationCode.Contains(locationCode))
.WhereIf(!string.IsNullOrEmpty(lba_ThrifTtitle5.Text), t => t.materialId == materialId)
.Where(t => t.warehouseId == warehouse.warehouseId)
.Count();
if (!string.IsNullOrEmpty(locationCode))
{
sql += " and t1.location_code like '%" + locationCode + "%'";
}
if (!string.IsNullOrEmpty(this.locationStatus.SelectedItem?.ToString()))
{
if(this.locationStatus.SelectedItem is ComboBoxItem item&&!string.IsNullOrEmpty(item.Tag?.ToString()))
{
sql += " and t1.location_status = " + item.Tag + "";
}
}
var data = dbContext.ExecuteSqlQuery<LocationDto>(sql);
int sum = data.Count;
data = data.Skip((this.Pagination1.PageIndex - 1) * this.pageCount).Take(this.pageCount).ToList();
data.ForEach(t =>
{
t.LocationStatus = SystemData.LocationStatusDic.GetValueOrDefault(t.LocationStatus, "未知");
});
Pagination1.MaxPageCount = (sum / pageCount) + (sum % pageCount == 0 ? 0 : 1);
var data = dbContext.WmsRawStock
.WhereIf(!string.IsNullOrEmpty(lba_ThrifTtitle6.Text), t => t.locationCode.Contains(locationCode))
.WhereIf(!string.IsNullOrEmpty(lba_ThrifTtitle5.Text), t => t.materialId == materialId)
.Where(t => t.warehouseId == warehouse.warehouseId)
.Skip((Pagination1.PageIndex - 1) * pageCount)
.Take(pageCount)
.ToList();
this.LoadMaterial1.ItemsSource = null;
this.LoadMaterial1.ItemsSource = data;
this.LoadMaterial1.Items.Refresh();
@ -4158,6 +4187,104 @@ namespace Khd.Core.Wpf.Form
}
}
private void LocationPersonBox_Click(object sender, RoutedEventArgs e)
{
if (sender is CheckBox check)
{
if (check.IsChecked == true)
{
if (LoadMaterial1.SelectedItem is LocationDto location)
{
locationDtos.Add(location);
}
}
else
{
if (LoadMaterial1.SelectedItem is LocationDto location)
{
locationDtos.Remove(location);
}
}
}
}
private void LockLocation_Click(object sender, RoutedEventArgs e)
{
if (locationDtos.Count == 0)
{
HandyControl.Controls.MessageBox.Show("请选择库位!");
return;
}
List<string> locationCodes = locationDtos.Select(t => t.LocationCode).ToList();
MessageBoxResult messageBoxResult = HandyControl.Controls.MessageBox.Show($"锁定库位{string.Join("\n", locationCodes)}", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);
if (messageBoxResult == MessageBoxResult.OK)
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
using var transaction = dbContext.Database.BeginTransaction();
try
{
List<WmsBaseLocation> wmsBaseLocations = dbContext.WmsBaseLocation.Where(t => locationCodes.Contains(t.locationCode)).ToList();
foreach (var location in wmsBaseLocations)
{
location.locationStatus = "3";
location.ExceptionDesc = "人工锁定";
SystemData.AlarmLocation(location, dbContext);
dbContext.Update(location);
}
dbContext.SaveChanges();
transaction.Commit();
locationDtos.Clear();
GetBaseLocations();
HandyControl.Controls.MessageBox.Show("锁定成功!");
}
catch
{
transaction.Rollback();
}
}
}
private void UnLockLocation_Click(object sender, RoutedEventArgs e)
{
if (locationDtos.Count == 0)
{
HandyControl.Controls.MessageBox.Show("请选择库位!");
return;
}
List<string> locationCodes = locationDtos.Select(t => t.LocationCode).ToList();
MessageBoxResult messageBoxResult = HandyControl.Controls.MessageBox.Show($"解锁库位{string.Join("\n", locationCodes)}", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);
if (messageBoxResult == MessageBoxResult.OK)
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
using var transaction = dbContext.Database.BeginTransaction();
try
{
List<WmsBaseLocation> wmsBaseLocations = dbContext.WmsBaseLocation.Where(t => locationCodes.Contains(t.locationCode)).ToList();
foreach (var location in wmsBaseLocations)
{
location.locationStatus = "1";
location.ExceptionDesc = "人工解锁";
SystemData.UnAlarmLocation(location, dbContext);
dbContext.Update(location);
}
dbContext.SaveChanges();
transaction.Commit();
locationDtos.Clear();
GetBaseLocations();
HandyControl.Controls.MessageBox.Show("解锁成功!");
}
catch
{
transaction.Rollback();
}
}
}
}
}

@ -1,5 +1,7 @@
using Khd.Core.Domain.Models;
using Khd.Core.EntityFramework;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Media;
namespace Khd.Core.Wpf
@ -84,5 +86,50 @@ namespace Khd.Core.Wpf
public static List<BaseDictionary> BaseDictionary = new List<BaseDictionary>();
public static List<PlcConfig> PlcConfigs = new List<PlcConfig>();
public static Dictionary<int, Plc.S7.Plc> PlcDic = new Dictionary<int, Plc.S7.Plc>();
public static readonly Dictionary<string, string> LocationStatusDic = new Dictionary<string, string>()
{
{"1","正常" },
{"2","自动锁定" },
{"3","人工锁定" },
{"4","移库锁定" },
{"5","合库锁定" },
{"6","出库锁定" },
{"8","因外侧库位异常导致内侧库位无法使用" },
{"9","异常库位" },
};
/// <summary>
/// 报警库位
/// </summary>
public static void AlarmLocation(WmsBaseLocation wmsBaseLocation, DefaultDbContext dbContext)
{
if (wmsBaseLocation.locDeep == 2)
{
WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 1 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault();
if (wmsLocation != null&&wmsLocation.locationStatus!="3")
{
wmsLocation.locationStatus = "8";
wmsLocation.ExceptionDesc = "外侧库位异常导致内测库位异常";
dbContext.Update(wmsLocation);
}
}
}
/// <summary>
/// 解除报警库位
/// </summary>
public static void UnAlarmLocation(WmsBaseLocation wmsBaseLocation, DefaultDbContext dbContext)
{
if (wmsBaseLocation.locDeep == 2)
{
WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 1 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault();
if (wmsLocation != null && wmsLocation.locationStatus == "8")
{
wmsLocation.locationStatus = "1";
dbContext.Update(wmsLocation);
}
}
}
}
}

@ -3,8 +3,8 @@
//mysql
//"DefaultConnection": "server=106.12.13.113;port=3306;database=khd_jyhb;uid=root;pwd=root;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True"
//khd
"DefaultConnection": "server=172.16.12.100;port=3306;database=hwjy-cloud;uid=kehaida;pwd=khdrkjy2024...;charset='utf8';persistsecurityinfo=True;SslMode=None;Allow User Variables=True"
// "DefaultConnection": "server=175.27.215.92;port=3306;database=hwjy-cloud;uid=kehaida;pwd=khd2024;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True"
//"DefaultConnection": "server=172.16.12.100;port=3306;database=hwjy-cloud;uid=kehaida;pwd=khdrkjy2024...;charset='utf8';persistsecurityinfo=True;SslMode=None;Allow User Variables=True"
"DefaultConnection": "server=175.27.215.92;port=3306;database=hwjy-cloud;uid=kehaida;pwd=khd2024;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True"
// "DefaultConnection": "server=localhost;port=3306;database=jyhb;uid=root;pwd=root;charset='utf8';persistsecurityinfo=True;SslMode=None;Allow User Variables=True"
},
"PlcConfigs": [

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Khd.Core.Wpf.dto
{
internal class LocationDto
{
public long LocationId { get; set; }
public string LocationCode { get; set; }
public string LocationStatus { get; set; }
public string ContainerCode { get; set; }
public int MaterialId { get; set; }
public int SaleOrderId {get; set; }
public int FloorNo { get; set; }
}
}
Loading…
Cancel
Save