初版
This commit is contained in:
@@ -115,20 +115,36 @@ namespace FATrace.WPLApp.Services
|
||||
{
|
||||
public RawProUserCsvDtoMap()
|
||||
{
|
||||
Map(x => x.RawCode).Index(0).Name(nameof(RawProUserCsvDto.RawCode));
|
||||
Map(x => x.RawName).Index(1).Name(nameof(RawProUserCsvDto.RawName));
|
||||
Map(x => x.InBagCode).Index(2).Name(nameof(RawProUserCsvDto.InBagCode));
|
||||
Map(x => x.BoxCode).Index(3).Name(nameof(RawProUserCsvDto.BoxCode));
|
||||
Map(x => x.Batch).Index(4).Name(nameof(RawProUserCsvDto.Batch));
|
||||
Map(x => x.ShelfLife).Index(5).Name(nameof(RawProUserCsvDto.ShelfLife));
|
||||
Map(x => x.Weight).Index(6).Name(nameof(RawProUserCsvDto.Weight));
|
||||
Map(x => x.DeliveryDate).Index(7).Name(nameof(RawProUserCsvDto.DeliveryDate));
|
||||
Map(x => x.RemainWeight).Index(8).Name(nameof(RawProUserCsvDto.RemainWeight));
|
||||
Map(x => x.StockWeight).Index(9).Name(nameof(RawProUserCsvDto.StockWeight));
|
||||
Map(x => x.WeightTime).Index(10).Name(nameof(RawProUserCsvDto.WeightTime)).TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
|
||||
Map(x => x.OpUser).Index(11).Name(nameof(RawProUserCsvDto.OpUser));
|
||||
Map(x => x.CheckUser).Index(12).Name(nameof(RawProUserCsvDto.CheckUser));
|
||||
Map(x => x.OutTime).Index(13).Name(nameof(RawProUserCsvDto.OutTime)).TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
|
||||
//Map(x => x.RawCode).Index(0).Name(nameof(RawProUserCsvDto.RawCode));
|
||||
//Map(x => x.RawName).Index(1).Name(nameof(RawProUserCsvDto.RawName));
|
||||
//Map(x => x.InBagCode).Index(2).Name(nameof(RawProUserCsvDto.InBagCode));
|
||||
//Map(x => x.BoxCode).Index(3).Name(nameof(RawProUserCsvDto.BoxCode));
|
||||
//Map(x => x.Batch).Index(4).Name(nameof(RawProUserCsvDto.Batch));
|
||||
//Map(x => x.ShelfLife).Index(5).Name(nameof(RawProUserCsvDto.ShelfLife));
|
||||
//Map(x => x.Weight).Index(6).Name(nameof(RawProUserCsvDto.Weight));
|
||||
//Map(x => x.DeliveryDate).Index(7).Name(nameof(RawProUserCsvDto.DeliveryDate));
|
||||
//Map(x => x.RemainWeight).Index(8).Name(nameof(RawProUserCsvDto.RemainWeight));
|
||||
//Map(x => x.StockWeight).Index(9).Name(nameof(RawProUserCsvDto.StockWeight));
|
||||
//Map(x => x.WeightTime).Index(10).Name(nameof(RawProUserCsvDto.WeightTime)).TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
|
||||
//Map(x => x.OpUser).Index(11).Name(nameof(RawProUserCsvDto.OpUser));
|
||||
//Map(x => x.CheckUser).Index(12).Name(nameof(RawProUserCsvDto.CheckUser));
|
||||
//Map(x => x.OutTime).Index(13).Name(nameof(RawProUserCsvDto.OutTime)).TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
Map(x => x.RawCode).Index(0).Name("原料编号");
|
||||
Map(x => x.RawName).Index(1).Name("原料名称");
|
||||
Map(x => x.InBagCode).Index(2).Name("内袋二维码");
|
||||
Map(x => x.BoxCode).Index(3).Name("外箱二维码");
|
||||
Map(x => x.Batch).Index(4).Name("批号");
|
||||
Map(x => x.ShelfLife).Index(5).Name("保质期");
|
||||
Map(x => x.Weight).Index(6).Name("称重重量(g)");
|
||||
Map(x => x.DeliveryDate).Index(7).Name("配料日期");
|
||||
Map(x => x.RemainWeight).Index(8).Name("剩余重量(Kg)");
|
||||
Map(x => x.StockWeight).Index(9).Name("入库总重量(Kg)");
|
||||
Map(x => x.WeightTime).Index(10).Name("称重时间").TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
|
||||
Map(x => x.OpUser).Index(11).Name("操作者");
|
||||
Map(x => x.CheckUser).Index(12).Name("确认者");
|
||||
Map(x => x.OutTime).Index(13).Name("出库时间").TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ using Prism.Mvvm;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Windows;
|
||||
using ComConfigHelper = FATrace.Com.ConfigHelper;
|
||||
using Prism.Events;
|
||||
using FATrace.WPLApp.Events;
|
||||
|
||||
namespace FATrace.WPLApp.Services
|
||||
{
|
||||
@@ -15,10 +17,12 @@ namespace FATrace.WPLApp.Services
|
||||
/// </summary>
|
||||
public class DataServices : BindableBase, IDisposable
|
||||
{
|
||||
public DataServices(ILogService logService, IFreeSql freeSql)
|
||||
public DataServices(ILogService logService, IFreeSql freeSql, IEventAggregator eventAggregator, SysRunService sysRunService)
|
||||
{
|
||||
LogService = logService;
|
||||
FreeSql = freeSql;
|
||||
EventAggregator = eventAggregator;
|
||||
SysRunService = sysRunService;
|
||||
|
||||
LineSglModel = new LineSglModel();
|
||||
LineSglModel.WeightScanCodeHandle += LineSglModel_WeightScanCodeHandle;
|
||||
@@ -116,7 +120,7 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
var Result = FreeSql.Update<RawProUse>()
|
||||
.Set(p => p.OutTime, DateTime.Now)
|
||||
.Where(p => p.BoxCode == BoxScanCode+",A")//外箱二维码就是外箱扫描码
|
||||
.Where(p => p.BoxCode == BoxScanCode + ",A")//外箱二维码就是外箱扫描码
|
||||
.ExecuteAffrows();
|
||||
if (Result > 0)
|
||||
{
|
||||
@@ -151,7 +155,7 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
KeyencePlcMcNet.Write("D1250", new Int16[30]);
|
||||
});
|
||||
|
||||
try { EventAggregator?.GetEvent<DashboardRefreshEvent>()?.Publish(true); } catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -227,8 +231,19 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
public ILogService LogService { get; }
|
||||
public IFreeSql FreeSql { get; }
|
||||
public IEventAggregator EventAggregator { get; }
|
||||
public SysRunService SysRunService { get; }
|
||||
|
||||
//通信组件
|
||||
private bool _plcConnected;
|
||||
public bool PlcConnected
|
||||
{
|
||||
get { return _plcConnected; }
|
||||
private set { _plcConnected = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基恩士通信组件
|
||||
/// </summary>
|
||||
private KeyenceMcNet KeyencePlcMcNet { get; set; } = null;
|
||||
|
||||
private string _WeightScanCode;
|
||||
@@ -304,6 +319,7 @@ namespace FATrace.WPLApp.Services
|
||||
// 读取 PLC 配置(大小写敏感,采用公共 ConfigHelper 并提供默认值)
|
||||
string PLCIP = ComConfigHelper.GetStringOrDefault("PLCIP", "192.0.1.10");
|
||||
int Port = ComConfigHelper.GetIntOrDefault("PLCPort", 5000);
|
||||
try { SysRunService.PlcIp = PLCIP; SysRunService.PlcPort = Port; } catch { }
|
||||
|
||||
//PLC通信的连接
|
||||
KeyencePlcMcNet = new KeyenceMcNet();
|
||||
@@ -317,16 +333,22 @@ namespace FATrace.WPLApp.Services
|
||||
if (connect.IsSuccess)//初始连接状态的显示判断
|
||||
{
|
||||
Console.WriteLine($"PLC-连接 OK");
|
||||
PlcConnected = true;
|
||||
try { SysRunService.PlcLinkState = true; SysRunService.SysRunState.ComState = 1; SysRunService.SysRunState.ComMsg = "正常"; } catch { }
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(connect.Message + Environment.NewLine + "ErrorCode: " + connect.ErrorCode);
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "连接失败"; } catch { }
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogService.Error(String.Format("ErrSource : {0} ErrMsg : {1}", ex.StackTrace.ToString(), ex.Message.ToString()));
|
||||
//insertLogToDBDelegate.BeginInvoke(1, "UpdateUIMethod异常", ex.Message.ToString() + ex.StackTrace.Substring(ex.StackTrace.Length - 40, 40), null, null);
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "异常"; } catch { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -446,6 +468,14 @@ namespace FATrace.WPLApp.Services
|
||||
if (OperateResultBoxScanSgl.IsSuccess)
|
||||
{
|
||||
LineSglModel.BoxScanCodeEnable = OperateResultBoxScanSgl.Content;
|
||||
|
||||
PlcConnected = true;
|
||||
try { SysRunService.PlcLinkState = true; SysRunService.SysRunState.ComState = 1; SysRunService.SysRunState.ComMsg = "正常"; } catch { }
|
||||
}
|
||||
else
|
||||
{
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "连接失败"; } catch { }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -488,11 +518,16 @@ namespace FATrace.WPLApp.Services
|
||||
if (!ret.IsSuccess)
|
||||
{
|
||||
LogService.Warn($"PLC重连失败: {ret.Message} (Code: {ret.ErrorCode})");
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "异常"; } catch { }
|
||||
}
|
||||
else { PlcConnected = true; try { SysRunService.PlcLinkState = true; SysRunService.SysRunState.ComState = 1; SysRunService.SysRunState.ComMsg = "正常"; } catch { } }
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogService.Error($"PLC重连异常: {ex.Message}");
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "异常"; } catch { }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,41 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
}
|
||||
|
||||
private string _PlcIp;
|
||||
/// <summary>
|
||||
/// PLC IP
|
||||
/// </summary>
|
||||
public string PlcIp
|
||||
{
|
||||
get => _PlcIp;
|
||||
set { _PlcIp = value; RaisePropertyChanged(); UpdatePlcEndPoint(); }
|
||||
}
|
||||
|
||||
private int _PlcPort;
|
||||
/// <summary>
|
||||
/// PLC 端口
|
||||
/// </summary>
|
||||
public int PlcPort
|
||||
{
|
||||
get => _PlcPort;
|
||||
set { _PlcPort = value; RaisePropertyChanged(); UpdatePlcEndPoint(); }
|
||||
}
|
||||
|
||||
private string _PlcEndPoint;
|
||||
/// <summary>
|
||||
/// PLC 终端显示:IP:Port
|
||||
/// </summary>
|
||||
public string PlcEndPoint
|
||||
{
|
||||
get => _PlcEndPoint;
|
||||
private set { _PlcEndPoint = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private void UpdatePlcEndPoint()
|
||||
{
|
||||
PlcEndPoint = string.IsNullOrWhiteSpace(PlcIp) ? string.Empty : $"{PlcIp}:{PlcPort}";
|
||||
}
|
||||
|
||||
private bool _PlcLinkState = false;
|
||||
/// <summary>
|
||||
/// PLC连接状态
|
||||
|
||||
Reference in New Issue
Block a user