1 year ago
parent 61f33b95e7
commit f9a5cec9da

@ -3,6 +3,7 @@ using Khd.Core.Domain.Dto.webapi;
using Masuit.Tools; using Masuit.Tools;
using Masuit.Tools.Logging; using Masuit.Tools.Logging;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading; using System.Threading;
namespace Khd.Core.Api.Controllers namespace Khd.Core.Api.Controllers
@ -112,5 +113,33 @@ namespace Khd.Core.Api.Controllers
return _application.CancelPreScheduling(); 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)); WmsRawOutstock wmsRawOutstock = _dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == Convert.ToInt64(callMaterial.rawOutstockId));
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
bool hasTask = _dbContext.WcsTask.Where(t => t.currPointId == 31).Any(); bool hasTask = _dbContext.WcsTask.Where(t => t.currPointId == 31 || t.endPointId == 31).Any();
bool hasTaskManual = _dbContext.WcsTaskManual.Where(t => t.endPointId == 31 || t.currPointId == 31 || t.taskType == 999).Any(); var taskManual = _dbContext.WcsTaskManual.Where(t => t.taskType == 999).FirstOrDefault();
if (hasTask || hasTaskManual) if (hasTask)
{ {
reponseMessage.code = "1"; reponseMessage.code = "1";
reponseMessage.message = "当前有任务,请等待任务完成后再申请"; reponseMessage.message = "当前有任务,请等待任务完成后再申请";
} }
else else
{ {
BaseEquip endEquip = _dbContext.BaseEquip.First(t => t.objid == 31); if(taskManual == null)
BaseEquip baseEquip = _dbContext.BaseEquip.First(t => t.objid == 9); {
WcsTaskManual wcsTaskManual = new WcsTaskManual(); BaseEquip endEquip = _dbContext.BaseEquip.First(t => t.objid == 31);
wcsTaskManual.taskType = 999; BaseEquip baseEquip = _dbContext.BaseEquip.First(t => t.objid == 9);
wcsTaskManual.objid = _snowId.NextId(); WcsTaskManual wcsTaskManual = new WcsTaskManual();
wcsTaskManual.startPointNo = callMaterial.locationCode; wcsTaskManual.taskType = 999;
wcsTaskManual.orderId = Convert.ToInt64(callMaterial.rawOutstockId); wcsTaskManual.objid = _snowId.NextId();
_dbContext.Add(wcsTaskManual); wcsTaskManual.startPointNo = callMaterial.locationCode;
_dbContext.SaveChanges(); wcsTaskManual.orderId = Convert.ToInt64(callMaterial.rawOutstockId);
reponseMessage.code = "0"; _dbContext.Add(wcsTaskManual);
reponseMessage.message = "成功"; _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 else
@ -505,7 +517,8 @@ namespace Khd.Core.Application
ReponseMessage reponseMessage = JsonConvert.DeserializeObject<ReponseMessage>(executeResult); ReponseMessage reponseMessage = JsonConvert.DeserializeObject<ReponseMessage>(executeResult);
return reponseMessage; return reponseMessage;
}catch (Exception ex) }
catch (Exception ex)
{ {
return new ReponseMessage() { code = "1", message = "调用失败" }; return new ReponseMessage() { code = "1", message = "调用失败" };
} }

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

@ -102,10 +102,10 @@ namespace Khd.Core.Wcs.Wcs
locColumn = t.Name.Substring(t.Name.IndexOf(',') + 1).Replace("]", "").Replace("五楼半成品[", ""), locColumn = t.Name.Substring(t.Name.IndexOf(',') + 1).Replace("]", "").Replace("五楼半成品[", ""),
}).Select(t => new LocationPlcDto }).Select(t => new LocationPlcDto
{ {
Id= t.Id, Id = t.Id,
Station= t.Station, Station = t.Station,
Address= t.Address, Address = t.Address,
locRow= t.locRow, locRow = t.locRow,
locColumn = t.locColumn.Substring(0, t.locColumn.IndexOf(',') == -1 ? t.locColumn.Length : t.locColumn.IndexOf(',')), 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) layerNum = t.locColumn.IndexOf(',') == -1 ? "1" : t.locColumn.Substring(t.locColumn.IndexOf(',') == -1 ? 0 : t.locColumn.IndexOf(',') + 1)
}); });
@ -608,10 +608,96 @@ namespace Khd.Core.Wcs.Wcs
CtuCmdLogic(); CtuCmdLogic();
UpdatePlcPointValue(); UpdatePlcPointValue();
BasePlcPointUpdateLogic(); BasePlcPointUpdateLogic();
AgvWaringLogic();
Thread.Sleep(500); 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> /// <summary>
/// 五楼AGV状态 /// 五楼AGV状态
/// </summary> /// </summary>
@ -778,9 +864,16 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type); StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
var XPlc = basePlcs.First(t => t.Name.Contains('X')); var XPlc = basePlcs.First(t => t.Name.Contains('X'));
var Ylc = basePlcs.First(t => t.Name.Contains('Y')); 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(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type); StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
#region 经过走廊区域报警 #region 经过走廊区域报警
var Agv3FLED = StaticData.BasePlcpointList.First(t => t.id == 76); var Agv3FLED = StaticData.BasePlcpointList.First(t => t.id == 76);
if (Agv3FLED != null) if (Agv3FLED != null)
@ -835,6 +928,15 @@ namespace Khd.Core.Wcs.Wcs
StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type); StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
var XPlc = basePlcs.First(t => t.Name.Contains('X')); var XPlc = basePlcs.First(t => t.Name.Contains('X'));
var Ylc = basePlcs.First(t => t.Name.Contains('Y')); 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(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.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); StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
var XPlc = basePlcs.First(t => t.Name.Contains('X')); var XPlc = basePlcs.First(t => t.Name.Contains('X'));
var Ylc = basePlcs.First(t => t.Name.Contains('Y')); 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(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.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); StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
XPlc = basePlcs.First(t => t.Name.Contains('X')); XPlc = basePlcs.First(t => t.Name.Contains('X'));
Ylc = basePlcs.First(t => t.Name.Contains('Y')); 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(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.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); StaticData.PlcDic[2].WriteToPoint(quantityPlc.Address, cardStatus.Battery, quantityPlc.type);
XPlc = basePlcs.First(t => t.Name.Contains("X")); XPlc = basePlcs.First(t => t.Name.Contains("X"));
Ylc = basePlcs.First(t => t.Name.Contains("Y")); 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(XPlc.Address, cardStatus.PosX.ToString(), XPlc.type);
StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type); StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type);
} }

@ -1,6 +1,8 @@
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
namespace Khd.Core.Wpf namespace Khd.Core.Wpf
@ -28,6 +30,8 @@ namespace Khd.Core.Wpf
SystemData.PlcConfigs = configuration.GetSection("PlcConfigs").Get<List<PlcConfig>>(); SystemData.PlcConfigs = configuration.GetSection("PlcConfigs").Get<List<PlcConfig>>();
ConnectionStrings.ConnectionString = configuration["ConnectionStrings:DefaultConnection"].ToString(); ConnectionStrings.ConnectionString = configuration["ConnectionStrings:DefaultConnection"].ToString();
SystemData.MenuList=configuration.GetSection("MenuList").Get<List<string>>();
LoadVersionMsg();
////配置文件 加载 Thrift 推送端口 ////配置文件 加载 Thrift 推送端口
//ThriftConfig.ThriftIpAddress = configuration["ThriftConfig:ThriftIpAddress"].ToString(); //ThriftConfig.ThriftIpAddress = configuration["ThriftConfig:ThriftIpAddress"].ToString();
//ThriftConfig.JiesShouDuanKou = int.Parse(configuration["ThriftConfig:JiesShouDuanKou"]); //ThriftConfig.JiesShouDuanKou = int.Parse(configuration["ThriftConfig:JiesShouDuanKou"]);
@ -94,5 +98,17 @@ namespace Khd.Core.Wpf
e.SetObserved(); 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> /// <param name="e"></param>
private void FormBoard_Loaded(object sender, RoutedEventArgs e) private void FormBoard_Loaded(object sender, RoutedEventArgs e)
{ {
CheckVersion();
InitializeData(1); 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; // 设置默认选择为 "南侧" QueryPositionCombox.SelectedIndex = 0; // 设置默认选择为 "南侧"
try try
{ {
@ -259,7 +274,8 @@ namespace Khd.Core.Wpf.Form
try try
{ {
GetPersonCallMaterialData(); GetPersonCallMaterialData();
}catch(Exception ex) }
catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.Message);
} }
@ -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 库位状态可视化 #region 库位状态可视化
private void InitializeData(int rowPosition) private void InitializeData(int rowPosition)
{ {
@ -2918,7 +3011,7 @@ namespace Khd.Core.Wpf.Form
if (!string.IsNullOrEmpty(InventoryCheck.MaterialId)) if (!string.IsNullOrEmpty(InventoryCheck.MaterialId))
{ {
List<long> materialIds = InventoryCheck.MaterialId.Split(';').Select(id => long.Parse(id)).ToList(); List<long> materialIds = InventoryCheck.MaterialId.Split(';').Select(id => long.Parse(id)).ToList();
if(materialIds!=null && materialIds.Count > 0) 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(); 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 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") .Where(t => t.locationStatus == "1")
.OrderBy(t => t.locRow) .OrderBy(t => t.locRow)
.ThenBy(t => t.locColumn) .ThenBy(t => t.locColumn)
@ -3039,7 +3132,7 @@ namespace Khd.Core.Wpf.Form
MaterialId = rawItem.materialId, MaterialId = rawItem.materialId,
ErpStatus = "0", ErpStatus = "0",
ErpAmount = 0, ErpAmount = 0,
CheckType ="1" CheckType = "1"
}); });
} }
} }
@ -3101,17 +3194,18 @@ namespace Khd.Core.Wpf.Form
dbContext.WmsInventoryCheck.Update(InventoryCheck); dbContext.WmsInventoryCheck.Update(InventoryCheck);
dbContext.SaveChanges(); dbContext.SaveChanges();
GetInvertoryData(); GetInvertoryData();
}catch(Exception ex) }
catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.Message);
} }
} }
/// <summary> /// <summary>
/// 查看盘点详情界面 /// 查看盘点详情界面
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void OpenInventoryDetails(object sender, RoutedEventArgs e) private void OpenInventoryDetails(object sender, RoutedEventArgs e)
{ {
dynamic wmsInventoryCheck = this.InventoryMaterial.SelectedItem; dynamic wmsInventoryCheck = this.InventoryMaterial.SelectedItem;
long inventoryCheckId = wmsInventoryCheck.InventoryCheckId; long inventoryCheckId = wmsInventoryCheck.InventoryCheckId;
@ -3644,16 +3738,16 @@ namespace Khd.Core.Wpf.Form
// 修改所有盘库明细任务状态 // 修改所有盘库明细任务状态
using var scope = _host.Services.CreateScope(); using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); 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) if (list != null)
{ {
list.ForEach(t => t.CheckStatus = "2"); list.ForEach(t => t.CheckStatus = "2");
dbContext.UpdateRange(list); dbContext.UpdateRange(list);
} }
WmsInventoryCheck wmsInventoryCheck = dbContext.WmsInventoryCheck.FirstOrDefault(t => t.CheckStatus == "1"); 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; wmsInventoryCheck.InventoryingAmount = 0;
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
@ -4299,29 +4393,29 @@ namespace Khd.Core.Wpf.Form
private void GetMenu() private void GetMenu()
{ {
using var scope = _host.Services.CreateScope(); //using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); //using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var sysMenus = dbContext.SysMenu.Where(t => t.MenuVisble == 1).ToList(); //var sysMenus = dbContext.SysMenu.Where(t => t.MenuVisble == 1).ToList();
var sysRoles = dbContext.SysRole.Where(t => t.UserId == UserId).ToList(); //var sysRoles = dbContext.SysRole.Where(t => t.UserId == UserId).ToList();
List<long?> roleIds = sysRoles.Select(t => t.RoleId).ToList(); //List<long?> roleIds = sysRoles.Select(t => t.RoleId).ToList();
foreach (var menu in sysMenus) //foreach (var menu in sysMenus)
{ //{
if (FindName(menu.MenuName) is TabItem tabItem) // if (FindName(menu.MenuName) is TabItem tabItem)
{ // {
if (roleIds.Contains(menu.OBJID)) // if (roleIds.Contains(menu.OBJID))
{ // {
tabItem.Visibility = Visibility.Visible; // tabItem.Visibility = Visibility.Visible;
} // }
else // else
{ // {
tabItem.Visibility = Visibility.Collapsed; // tabItem.Visibility = Visibility.Collapsed;
} // }
} // }
} //}
if (sysRoles.Count() == 0) //if (sysRoles.Count() == 0)
{ //{
TabControl.SelectedIndex = 0; // TabControl.SelectedIndex = 0;
} //}
} }
private void SelectUserRole(object sender, RoutedEventArgs e) private void SelectUserRole(object sender, RoutedEventArgs e)

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

@ -82,6 +82,9 @@ namespace Khd.Core.Wpf
public static List<BaseEquip> BaseEquip { get; internal set; } public static List<BaseEquip> BaseEquip { get; internal set; }
public static List<WmsBaseWarehouse> BaseWareHouse { get; internal set; } public static List<WmsBaseWarehouse> BaseWareHouse { get; internal set; }
public static List<MesBaseMaterialInfo> MesBaseMaterialInfo { get; 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<BaseDictionary> BaseDictionary = new List<BaseDictionary>();
public static List<PlcConfig> PlcConfigs = new List<PlcConfig>(); public static List<PlcConfig> PlcConfigs = new List<PlcConfig>();

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Loading…
Cancel
Save