1 year ago
parent 61f33b95e7
commit f9a5cec9da

@ -3,6 +3,7 @@ using Khd.Core.Domain.Dto.webapi;
using Masuit.Tools;
using Masuit.Tools.Logging;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading;
namespace Khd.Core.Api.Controllers
@ -112,5 +113,33 @@ namespace Khd.Core.Api.Controllers
return _application.CancelPreScheduling();
}
[HttpGet]
public IActionResult Get(string fileName)
{
string path = Directory.GetCurrentDirectory() + "\\download\\" + fileName;
if (System.IO.File.Exists(path))
{
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
return File(fileBytes, "application/octet-stream", fileName);
}
else
{
return NotFound();
}
}
[HttpGet("version")]
public string GetVersion()
{
string path = Directory.GetCurrentDirectory() + "\\download\\" + "version.txt";
if (System.IO.File.Exists(path))
{
return System.IO.File.ReadAllText(path);
}
else
{
return "0.0.0.0";
}
}
}
}

@ -380,26 +380,38 @@ namespace Khd.Core.Application
WmsRawOutstock wmsRawOutstock = _dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == Convert.ToInt64(callMaterial.rawOutstockId));
if (wmsRawOutstock != null)
{
bool hasTask = _dbContext.WcsTask.Where(t => t.currPointId == 31).Any();
bool hasTaskManual = _dbContext.WcsTaskManual.Where(t => t.endPointId == 31 || t.currPointId == 31 || t.taskType == 999).Any();
if (hasTask || hasTaskManual)
bool hasTask = _dbContext.WcsTask.Where(t => t.currPointId == 31 || t.endPointId == 31).Any();
var taskManual = _dbContext.WcsTaskManual.Where(t => t.taskType == 999).FirstOrDefault();
if (hasTask)
{
reponseMessage.code = "1";
reponseMessage.message = "当前有任务,请等待任务完成后再申请";
}
else
{
BaseEquip endEquip = _dbContext.BaseEquip.First(t => t.objid == 31);
BaseEquip baseEquip = _dbContext.BaseEquip.First(t => t.objid == 9);
WcsTaskManual wcsTaskManual = new WcsTaskManual();
wcsTaskManual.taskType = 999;
wcsTaskManual.objid = _snowId.NextId();
wcsTaskManual.startPointNo = callMaterial.locationCode;
wcsTaskManual.orderId = Convert.ToInt64(callMaterial.rawOutstockId);
_dbContext.Add(wcsTaskManual);
_dbContext.SaveChanges();
reponseMessage.code = "0";
reponseMessage.message = "成功";
if(taskManual == null)
{
BaseEquip endEquip = _dbContext.BaseEquip.First(t => t.objid == 31);
BaseEquip baseEquip = _dbContext.BaseEquip.First(t => t.objid == 9);
WcsTaskManual wcsTaskManual = new WcsTaskManual();
wcsTaskManual.taskType = 999;
wcsTaskManual.objid = _snowId.NextId();
wcsTaskManual.startPointNo = callMaterial.locationCode;
wcsTaskManual.orderId = Convert.ToInt64(callMaterial.rawOutstockId);
_dbContext.Add(wcsTaskManual);
_dbContext.SaveChanges();
reponseMessage.code = "0";
reponseMessage.message = "成功";
}
else
{
taskManual.startPointNo = callMaterial.locationCode;
taskManual.updateTime = DateTime.Now;
_dbContext.WcsTaskManual.Update(taskManual);
_dbContext.SaveChanges();
reponseMessage.code = "0";
reponseMessage.message = "修改成功";
}
}
}
else
@ -505,7 +517,8 @@ namespace Khd.Core.Application
ReponseMessage reponseMessage = JsonConvert.DeserializeObject<ReponseMessage>(executeResult);
return reponseMessage;
}catch (Exception ex)
}
catch (Exception ex)
{
return new ReponseMessage() { code = "1", message = "调用失败" };
}

@ -37,6 +37,9 @@ namespace Khd.Core.Domain.Models
[Column("remark")]
public string Remark { get; set; }
[Column("alarm_status_word")]
public string Status { get; set; }
public string StatusWord { get; set; }
[Column("alarm_status")]
public int? Status { get; set; }
}
}

@ -171,7 +171,7 @@ namespace Khd.Core.Wcs.Wcs
bool hasLocation = wmsBaseLocations
.Where(t => t.locRow == (wmsBaseLocation.locRow % 2 == 1 ? (wmsBaseLocation.locRow + 1) : (wmsBaseLocation.locRow - 1)))
.Where(t => t.locColumn == wmsBaseLocation.locColumn)
.Any();
.Any();
if (!hasLocation)
{
cannotIn.Add(wmsBaseLocation.locationCode);
@ -960,6 +960,14 @@ namespace Khd.Core.Wcs.Wcs
.Where(t => wmsRawStockLocations.Contains(t.locationCode))
.WhereIf(!string.IsNullOrEmpty(wcsTaskManual.startPointNo),t=>t.locationCode== wcsTaskManual.startPointNo)
.ToList();
if (!string.IsNullOrEmpty(wcsTaskManual.startPointNo))
{
var wmsRawPreferredOut = dbContext.WmsRawPreferredOut.Where(t => t.LocationCode == wcsTaskManual.startPointNo).FirstOrDefault();
if (wmsRawPreferredOut != null)
{
dbContext.Remove(wmsRawPreferredOut);
}
}
var bill = from a in wmsBaseLocations
from b in wmsRawStocks
where a.locationCode == b.locationCode
@ -978,14 +986,13 @@ namespace Khd.Core.Wcs.Wcs
}
}
bill = bill.OrderBy(t => list.Contains(t.a.locationCode) ? 0 : 1).OrderBy(t => t.b.instockDate.Value.Date);//按某个时间段
#region 如果有需要优先投料的库位,则该库位优先投料
List<string> PreferredOutsLocation = dbContext.WmsRawPreferredOut.Where(x => x.WarehouseId == 311).ToList().Select(x => x.LocationCode).ToList();
if (PreferredOutsLocation != null && PreferredOutsLocation.Count > 0)
{
bill.OrderBy(t => PreferredOutsLocation.Contains(t.a.locationCode) ? 0 : 1);
}
#endregion
//#region 如果有需要优先投料的库位,则该库位优先投料
//List<string> PreferredOutsLocation = dbContext.WmsRawPreferredOut.Where(x => x.WarehouseId == 311).ToList().Select(x => x.LocationCode).ToList();
//if (PreferredOutsLocation != null && PreferredOutsLocation.Count > 0)
//{
// bill.OrderBy(t => PreferredOutsLocation.Contains(t.a.locationCode) ? 0 : 1);
//}
//#endregion
foreach (var item in bill)
{

@ -102,10 +102,10 @@ namespace Khd.Core.Wcs.Wcs
locColumn = t.Name.Substring(t.Name.IndexOf(',') + 1).Replace("]", "").Replace("五楼半成品[", ""),
}).Select(t => new LocationPlcDto
{
Id= t.Id,
Station= t.Station,
Address= t.Address,
locRow= t.locRow,
Id = t.Id,
Station = t.Station,
Address = t.Address,
locRow = t.locRow,
locColumn = t.locColumn.Substring(0, t.locColumn.IndexOf(',') == -1 ? t.locColumn.Length : t.locColumn.IndexOf(',')),
layerNum = t.locColumn.IndexOf(',') == -1 ? "1" : t.locColumn.Substring(t.locColumn.IndexOf(',') == -1 ? 0 : t.locColumn.IndexOf(',') + 1)
});
@ -399,7 +399,7 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].Read(HeartBeat30.plcpointAddress);
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
SystemData.DeleteWaringLog(dbContext, WaringType.Plc);
}
catch
{
@ -608,10 +608,96 @@ namespace Khd.Core.Wcs.Wcs
CtuCmdLogic();
UpdatePlcPointValue();
BasePlcPointUpdateLogic();
AgvWaringLogic();
Thread.Sleep(500);
}
}
private void AgvWaringLogic()
{
using var scope = host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
try
{
dbContext.Database.BeginTransaction();
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var dmsBaseAlarmRules = StaticData.DmsBaseAlarmRuleList.Where(t => t.DeviceId == -1).ToList();
var wcsAgvStatuses = dbContext.WcsAgvStatus.ToList();
var robotCodes = wcsAgvStatuses.Select(t => long.Parse(t.RobotCode)).ToList();
var dmsRecordAlarmTimes = dbContext.DmsRecordAlarmTime.Where(t => robotCodes.Contains(t.DeviceId)).ToList();
foreach (var agvStatus in wcsAgvStatuses)
{
var dmsBaseAlarmRule = dmsBaseAlarmRules.Where(t => t.Status.ToString() == agvStatus.Status).FirstOrDefault();
var dmsRecordAlarmTime = dmsRecordAlarmTimes
.Where(t => t.DeviceId == int.Parse(agvStatus.RobotCode)).FirstOrDefault();
if (dmsBaseAlarmRule != null)
{
if (dmsRecordAlarmTime == null)
{
dmsRecordAlarmTime=new DmsRecordAlarmTime
{
DeviceId = int.Parse(agvStatus.RobotCode),
AlarmBeginTime = DateTime.Now,
AlarmReason = dmsBaseAlarmRule.AlarmReason,
HandleSuggest = dmsBaseAlarmRule.HandleSuggest,
AlarmRuleId = dmsBaseAlarmRule.AlarmRuleId,
ContinueTime = dmsBaseAlarmRule.ContinueTime,
CreateBy = "WCS",
CreateTime = DateTime.Now,
};
var dmsRecordAlarmInfo = CoreMapper.Map<DmsRecordAlarmInfo>(dmsRecordAlarmTime);
dmsRecordAlarmInfo.NoticeStatus = "0";
dmsRecordAlarmInfo.AlarmStatus = "0";
dbContext.Add(dmsRecordAlarmInfo);
dbContext.Add(dmsRecordAlarmTime);
dbContext.SaveChanges();
}
else
{
if (dmsRecordAlarmTime.AlarmReason != dmsBaseAlarmRule.AlarmReason)
{
dbContext.Remove(dmsRecordAlarmTime);
dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == dmsRecordAlarmTime.AlarmId)
.Update(t => new DmsRecordAlarmInfo { AlarmStatus = "2", AlarmEndTime = DateTime.Now });
var newDmsRecordAlarmTime = new DmsRecordAlarmTime
{
DeviceId = int.Parse(agvStatus.RobotCode),
AlarmBeginTime = DateTime.Now,
AlarmReason = dmsBaseAlarmRule.AlarmReason,
HandleSuggest = dmsBaseAlarmRule.HandleSuggest,
AlarmRuleId = dmsBaseAlarmRule.AlarmRuleId,
ContinueTime = dmsBaseAlarmRule.ContinueTime,
CreateBy = "WCS",
CreateTime = DateTime.Now,
};
var dmsRecordAlarmInfo = CoreMapper.Map<DmsRecordAlarmInfo>(newDmsRecordAlarmTime);
dmsRecordAlarmInfo.NoticeStatus = "0";
dmsRecordAlarmInfo.AlarmStatus = "0";
dbContext.Add(dmsRecordAlarmInfo);
dbContext.Add(newDmsRecordAlarmTime);
dbContext.SaveChanges();
}
}
}
else
{
if (dmsRecordAlarmTime != null)
{
dbContext.Remove(dmsRecordAlarmTime);
dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == dmsRecordAlarmTime.AlarmId)
.Update(t => new DmsRecordAlarmInfo { AlarmStatus = "2", AlarmEndTime = DateTime.Now });
dbContext.SaveChanges();
}
}
}
dbContext.Database.CommitTransaction();
}
catch
{
dbContext.Database.RollbackTransaction();
}
}
/// <summary>
/// 五楼AGV状态
/// </summary>
@ -778,9 +864,16 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
var status = basePlcs.First(t => t.Name.Contains("Status")); if (cardStatus.Online.ToLower() == "true")
{
StaticData.PlcDic[2].WriteToPoint(status.Address, cardStatus.Status, status.type);
}
else
{
StaticData.PlcDic[2].WriteToPoint(status.Address, -1, status.type);
}
StaticData.PlcDic[2].WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
#region 经过走廊区域报警
var Agv3FLED = StaticData.BasePlcpointList.First(t => t.id == 76);
if (Agv3FLED != null)
@ -835,6 +928,15 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
var status = basePlcs.First(t => t.Name.Contains("Status"));
if (cardStatus.Online.ToLower() == "true")
{
StaticData.PlcDic[2].WriteToPoint(status.Address, cardStatus.Status, status.type);
}
else
{
StaticData.PlcDic[2].WriteToPoint(status.Address, -1, status.type);
}
StaticData.PlcDic[2].WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
@ -915,6 +1017,15 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
var XPlc = basePlcs.First(t => t.Name.Contains('X'));
var Ylc = basePlcs.First(t => t.Name.Contains('Y'));
var status = basePlcs.First(t => t.Name.Contains("Status"));
if(cardStatus.Online.ToLower()== "true")
{
StaticData.PlcDic[2].WriteToPoint(status.Address, cardStatus.Status, status.type);
}
else
{
StaticData.PlcDic[2].WriteToPoint(status.Address, -1, status.type);
}
StaticData.PlcDic[2].WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
@ -925,6 +1036,15 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
XPlc = basePlcs.First(t => t.Name.Contains('X'));
Ylc = basePlcs.First(t => t.Name.Contains('Y'));
status = basePlcs.First(t => t.Name.Contains("Status"));
if (cardStatus.Online.ToLower() == "true")
{
StaticData.PlcDic[2].WriteToPoint(status.Address, cardStatus.Status, status.type);
}
else
{
StaticData.PlcDic[2].WriteToPoint(status.Address, -1, status.type);
}
StaticData.PlcDic[2].WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
@ -935,6 +1055,15 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
XPlc = basePlcs.First(t => t.Name.Contains("X"));
Ylc = basePlcs.First(t => t.Name.Contains("Y"));
status = basePlcs.First(t => t.Name.Contains("Status"));
if (cardStatus.Online.ToLower() == "true")
{
StaticData.PlcDic[2].WriteToPoint(status.Address, cardStatus.Status, status.type);
}
else
{
StaticData.PlcDic[2].WriteToPoint(status.Address, -1, status.type);
}
StaticData.PlcDic[2].WriteToPoint(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
}

@ -1,6 +1,8 @@
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using System.Windows;
namespace Khd.Core.Wpf
@ -28,6 +30,8 @@ namespace Khd.Core.Wpf
SystemData.PlcConfigs = configuration.GetSection("PlcConfigs").Get<List<PlcConfig>>();
ConnectionStrings.ConnectionString = configuration["ConnectionStrings:DefaultConnection"].ToString();
SystemData.MenuList=configuration.GetSection("MenuList").Get<List<string>>();
LoadVersionMsg();
////配置文件 加载 Thrift 推送端口
//ThriftConfig.ThriftIpAddress = configuration["ThriftConfig:ThriftIpAddress"].ToString();
//ThriftConfig.JiesShouDuanKou = int.Parse(configuration["ThriftConfig:JiesShouDuanKou"]);
@ -94,5 +98,17 @@ namespace Khd.Core.Wpf
e.SetObserved();
}
}
private static void LoadVersionMsg()
{
try
{
SystemData.ProcessName = Process.GetCurrentProcess().ProcessName;
SystemData.VerSion = File.ReadAllText("Version.txt");
}
catch
{
}
}
}
}

@ -123,8 +123,23 @@ namespace Khd.Core.Wpf.Form
/// <param name="e"></param>
private void FormBoard_Loaded(object sender, RoutedEventArgs e)
{
CheckVersion();
InitializeData(1);
foreach (var item in this.TabControl.Items)
{
if (item is TabItem tabItem)
{
var hearder = tabItem.Header?.ToString();
if (hearder != null && SystemData.MenuList.Contains(hearder))
{
tabItem.Visibility = Visibility.Visible;
}
else
{
tabItem.Visibility = Visibility.Collapsed;
}
}
}
QueryPositionCombox.SelectedIndex = 0; // 设置默认选择为 "南侧"
try
{
@ -259,11 +274,12 @@ namespace Khd.Core.Wpf.Form
try
{
GetPersonCallMaterialData();
}catch(Exception ex)
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
//加载dategrid信息
//LoadMaterial_GetMessage("");
//连接PLC判断
@ -311,6 +327,83 @@ namespace Khd.Core.Wpf.Form
}
/// <summary>
/// 检查版本
/// </summary>
private void CheckVersion()
{
try
{
string version = HttpHelper.SendGetMessage("172.16.12.100", 5001, "wcs/RecieveRcs/version");
Version vs = new Version(version);
Version lovs = new Version(SystemData.VerSion);
if (vs > lovs)
{
var result = MessageBox.Show("有新版本是否更新?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information);
if (result == MessageBoxResult.Yes)
{
Process.Start("AutoUpdate.exe", new List<string>
{
version,
SystemData.ProcessName,
"http://172.16.12.100:5001/wcs/RecieveRcs?fileName=Khd.Core.Wpf.zip"
});
Application.Current.Shutdown();
Process.GetCurrentProcess().Kill();
}
}
}
catch
{
}
//using var client = SqlSugarHelper.GetInstance();
//var versionMsg = client.Queryable<VersionUpdateModel>().Where(t => t.ProcessName == StaticData.ProcessName).First();
//if (versionMsg != null)
//{
// if (StaticData.IsUpdate)
// {
// var versionUpdateLogModel = CoreMapper.Map<VersionUpdateLogModel>(versionMsg);
// versionUpdateLogModel.Id = Guid.NewGuid().ToString();
// versionUpdateLogModel.UpdateTime = DateTime.Now;
// versionUpdateLogModel.UpdateIp = string.Join(",", StaticData.IPS);
// client.Insertable(versionUpdateLogModel).ExecuteCommand();
// }
// if (string.IsNullOrEmpty(versionMsg.Version) || string.IsNullOrEmpty(versionMsg.DownloadUrl))
// {
// return;
// }
// //获取数据库程序的版本号
// if (StaticData.VerSion == "99.0.0.0")
// {
// File.WriteAllText("Version.txt", versionMsg.Version);
// }
// else
// {
// //比较版本号
// if (versionMsg.Version != StaticData.VerSion)
// {
// if (MessageBox.Show($"最新版本为:{versionMsg.Version},当前版本为:{StaticData.VerSion},是否更新?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes)
// {
// Process.Start("AutoUpdate.exe", new List<string>
// {
// versionMsg.Version,
// StaticData.ProcessName,
// versionMsg.DownloadUrl
// });
// Application.Current.Shutdown();
// }
// }
// }
//}
//else
//{
// this.UpdateButton.Visibility = Visibility.Collapsed;
//}
}
#region 库位状态可视化
private void InitializeData(int rowPosition)
{
@ -2917,8 +3010,8 @@ namespace Khd.Core.Wpf.Form
List<string>? locationCodeList = null;
if (!string.IsNullOrEmpty(InventoryCheck.MaterialId))
{
List<long> materialIds = InventoryCheck.MaterialId.Split(';').Select(id => long.Parse(id)).ToList();
if(materialIds!=null && materialIds.Count > 0)
List<long> materialIds = InventoryCheck.MaterialId.Split(';').Select(id => long.Parse(id)).ToList();
if (materialIds != null && materialIds.Count > 0)
{
// 盘点指定型号的物料库存的库位
locationCodeList = dbContext.WmsRawStock.Where(t => t.warehouseId == 512 && materialIds.Contains((long)t.materialId)).Select(x => x.locationCode).Distinct().ToList();
@ -2927,7 +3020,7 @@ namespace Khd.Core.Wpf.Form
}
//所有满足条件的需要盘库的库位
var wmsBaseLocations = dbContext.WmsBaseLocation
.Where(t => t.ContainerStatus == "1" && t.warehouseId==512)
.Where(t => t.ContainerStatus == "1" && t.warehouseId == 512)
.Where(t => t.locationStatus == "1")
.OrderBy(t => t.locRow)
.ThenBy(t => t.locColumn)
@ -3039,7 +3132,7 @@ namespace Khd.Core.Wpf.Form
MaterialId = rawItem.materialId,
ErpStatus = "0",
ErpAmount = 0,
CheckType ="1"
CheckType = "1"
});
}
}
@ -3101,17 +3194,18 @@ namespace Khd.Core.Wpf.Form
dbContext.WmsInventoryCheck.Update(InventoryCheck);
dbContext.SaveChanges();
GetInvertoryData();
}catch(Exception ex)
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
/// <summary>
/// 查看盘点详情界面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OpenInventoryDetails(object sender, RoutedEventArgs e)
/// <summary>
/// 查看盘点详情界面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OpenInventoryDetails(object sender, RoutedEventArgs e)
{
dynamic wmsInventoryCheck = this.InventoryMaterial.SelectedItem;
long inventoryCheckId = wmsInventoryCheck.InventoryCheckId;
@ -3644,16 +3738,16 @@ namespace Khd.Core.Wpf.Form
// 修改所有盘库明细任务状态
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
List<WmsInventoryCheckDetail> list = dbContext.WmsInventoryCheckDetail.Where(t => t.CheckStatus=="1").ToList();
List<WmsInventoryCheckDetail> list = dbContext.WmsInventoryCheckDetail.Where(t => t.CheckStatus == "1").ToList();
if (list != null)
{
list.ForEach(t => t.CheckStatus = "2");
dbContext.UpdateRange(list);
}
WmsInventoryCheck wmsInventoryCheck = dbContext.WmsInventoryCheck.FirstOrDefault(t => t.CheckStatus == "1");
if(wmsInventoryCheck != null)
if (wmsInventoryCheck != null)
{
wmsInventoryCheck.InventoriedAmount = dbContext.WmsInventoryCheckDetail.Where(t => t.InventoryCheckId == wmsInventoryCheck.InventoryCheckId).Select(t=>t.LocationCode).Distinct().Count();
wmsInventoryCheck.InventoriedAmount = dbContext.WmsInventoryCheckDetail.Where(t => t.InventoryCheckId == wmsInventoryCheck.InventoryCheckId).Select(t => t.LocationCode).Distinct().Count();
wmsInventoryCheck.InventoryingAmount = 0;
dbContext.SaveChanges();
}
@ -4299,29 +4393,29 @@ namespace Khd.Core.Wpf.Form
private void GetMenu()
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var sysMenus = dbContext.SysMenu.Where(t => t.MenuVisble == 1).ToList();
var sysRoles = dbContext.SysRole.Where(t => t.UserId == UserId).ToList();
List<long?> roleIds = sysRoles.Select(t => t.RoleId).ToList();
foreach (var menu in sysMenus)
{
if (FindName(menu.MenuName) is TabItem tabItem)
{
if (roleIds.Contains(menu.OBJID))
{
tabItem.Visibility = Visibility.Visible;
}
else
{
tabItem.Visibility = Visibility.Collapsed;
}
}
}
if (sysRoles.Count() == 0)
{
TabControl.SelectedIndex = 0;
}
//using var scope = _host.Services.CreateScope();
//using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
//var sysMenus = dbContext.SysMenu.Where(t => t.MenuVisble == 1).ToList();
//var sysRoles = dbContext.SysRole.Where(t => t.UserId == UserId).ToList();
//List<long?> roleIds = sysRoles.Select(t => t.RoleId).ToList();
//foreach (var menu in sysMenus)
//{
// if (FindName(menu.MenuName) is TabItem tabItem)
// {
// if (roleIds.Contains(menu.OBJID))
// {
// tabItem.Visibility = Visibility.Visible;
// }
// else
// {
// tabItem.Visibility = Visibility.Collapsed;
// }
// }
//}
//if (sysRoles.Count() == 0)
//{
// TabControl.SelectedIndex = 0;
//}
}
private void SelectUserRole(object sender, RoutedEventArgs e)

@ -5,7 +5,6 @@
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ApplicationIcon>单据-迅捷PDF转换器.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
@ -123,10 +122,6 @@
<None Remove="Resources\上件操作.png" />
</ItemGroup>
<ItemGroup>
<Content Include="单据-迅捷PDF转换器.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\amma.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

@ -82,6 +82,9 @@ namespace Khd.Core.Wpf
public static List<BaseEquip> BaseEquip { get; internal set; }
public static List<WmsBaseWarehouse> BaseWareHouse { get; internal set; }
public static List<MesBaseMaterialInfo> MesBaseMaterialInfo { get; set; }
public static string ProcessName { get; internal set; }
public static string VerSion { get; internal set; } = "0.0.0.0";
public static List<string> MenuList { get; internal set; }
public static List<BaseDictionary> BaseDictionary = new List<BaseDictionary>();
public static List<PlcConfig> PlcConfigs = new List<PlcConfig>();

@ -49,5 +49,22 @@
},
"FlagConfig": {
"UpFlagNum": 1
}
},
"MenuList": [
"任务管理",
"库存信息",
"库位状态",
"废料区管理",
"人工叫料",
"盘库任务",
"扫描入库",
"扫描退库",
"扫描出库",
"辅料移库",
//"一楼接驳位",
//"PLC信息",
//"Agv信息",
//"权限控制"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Loading…
Cancel
Save