diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs index cdf11b74..9d3f9f6c 100644 --- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs +++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs @@ -24,7 +24,7 @@ using System.Threading.Tasks; namespace Aucma.Core.ProductOffLine.Business { /// - /// 入库业务逻辑 + /// 成品下线业务逻辑 /// public class OffLineBusiness { @@ -93,35 +93,13 @@ namespace Aucma.Core.ProductOffLine.Business public async void test() { - string tt = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000000807@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01"; - string[] FArrayList = tt.Split('@'); - if (FArrayList[0].ToUpper() == "Y") //查询数据成功 + // string tt = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000004899@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01"; + Task.Run(() => { - #region 实体赋值 - TempOffLineInfo1.ProductFactoryCode = FArrayList[1]; - TempOffLineInfo1.ProductSNCode = FArrayList[2]; - TempOffLineInfo1.ProductOrderNo = DBToString(FArrayList[3]); - TempOffLineInfo1.ProductSaleNo = DBToString(FArrayList[4]); - TempOffLineInfo1.ProductSaleLineNo = DBToString(FArrayList[5]); - TempOffLineInfo1.ProductCheckInfo = DBToString(FArrayList[6]); //验证组合 - TempOffLineInfo1.ProductCode = DBToString(FArrayList[7]); - TempOffLineInfo1.ProductName = DBToString(FArrayList[8]); //产品描述 - TempOffLineInfo1.ProductType = FArrayList[9]; - TempOffLineInfo1.ProductModel = FArrayList[10]; //产品型号 - TempOffLineInfo1.ProductRemark = DBToString(FArrayList[11]); - TempOffLineInfo1.ProductBarNo = FArrayList[12]; - TempOffLineInfo1.ProductMasterModel = FArrayList[13]; //产品主型号 - TempOffLineInfo1.ProductVersion = FArrayList[14]; - TempOffLineInfo1.ProductUseInfo = FArrayList[15];//产品用途 - TempOffLineInfo1.ProductCirculate = FArrayList[16];//流通特性 - TempOffLineInfo1.ProductCreateDate = FArrayList[17]; - #endregion - TempOffLineInfo1.ProductScanTime = System.DateTime.Now; - TempOffLineInfo1.number1 = "111"; - // OffLineInfo info11 = MapperTwo(TempOffLineInfo); - // int a = await _offLineInfoServices.AddAsync(info11); - // Console.WriteLine(a); - } + Thread.Sleep(5000); + MaterialBarScanEvent("32160030000000910780", "192.168.1.19"); + // MaterialBarScanEvent("33160030000000910780", "192.168.1.20"); + }); } /// /// 处理条码 @@ -130,30 +108,50 @@ namespace Aucma.Core.ProductOffLine.Business /// 扫码器方向 public async void MaterialBarScanEvent(string code,string scannerIp)//接收条码数据 { - int ScannerNo = scannerIp== Appsettings.app("Middleware", "Scanner1", "Ip") ? 1:2 ; // 确定是哪个扫码器 - - bool BackResult = false; - if (ScannerNo==1) + Task.Run(async () => { - //1.扫描的SN条码去条码系统校验 - BackResult = await HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1 - // 2.更新mes数据库 - await updateMesData(TempOffLineInfo1); - } - else - { - BackResult = await HandleMaterialBarCode(code.Trim(), TempOffLineInfo2); //扫码器2 - // 2.更新mes数据库 - await updateMesData(TempOffLineInfo1); - } - if (BackResult == true) - { - log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo1.ProductOrderNo, TempOffLineInfo1.OrderQty)); - // 先查询分垛方向A或者B - string direction = getDirectioneEvent?.Invoke(TempOffLineInfo1.ProductCode); - DownLoadPassFlag(ScannerNo,direction); //下发plc放行信号,分垛AB库 - } - } + int ScannerNo = scannerIp == Appsettings.app("Middleware", "Scanner1", "Ip") ? 1 : 2; // 确定是哪个扫码器 + string materialType = ""; + bool BackResult = false; + if (ScannerNo == 1) + { + //1.扫描的SN条码去条码系统校验 + BackResult = await HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1 + materialType = TempOffLineInfo1.ProductCode; + if (!BackResult) + { + return; + } + // 2.更新mes数据库 + BackResult = await updateMesData(TempOffLineInfo1); + log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo1.ProductOrderNo, TempOffLineInfo1.OrderQty)); + } + else + { + BackResult = await HandleMaterialBarCode(code.Trim(), TempOffLineInfo2); //扫码器2 + materialType = TempOffLineInfo2.ProductCode; + if (!BackResult) + { + return; + } + // 2.更新mes数据库 + BackResult = await updateMesData(TempOffLineInfo2); + log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo2.ProductOrderNo, TempOffLineInfo2.OrderQty)); + } + if (BackResult == true) + { + // 先查询分垛方向A或者B + string direction = getDirectioneEvent?.Invoke(materialType); + bool plcResult = DownLoadPassFlag(ScannerNo, direction); //下发plc放行信号,分垛AB库 + if (plcResult == false) + { + sendPlcError(); + } + log.Info("plc放行反馈成功"); + } + }); + + } /// /// 条码验证成功后,更新mes数据库 成品下线表,订单表等等 @@ -164,7 +162,6 @@ namespace Aucma.Core.ProductOffLine.Business { try { - // TempOffLineInfo.ProductRefreshFlag = true; OffLineInfo info11 = MapperTwo(TempOffLineInfo); // 添加成品下线表 await _offLineInfoServices.AddAsync(info11); @@ -172,8 +169,8 @@ namespace Aucma.Core.ProductOffLine.Business ////6.更新mes 数据库完成数量和时间(BASE_ORDERINFO,PRODUCT_PLANINFO) 注意:查询的字段可能需要修改,确保数据一致 ////6.1截取订单号去查询更新BASE_ORDERINFO,全放到service处理 - //string orderCode = "11215484"; - //List orders = await _baseOrderInfoServices.QueryAsync(x => x.OrderCode == orderCode); + + List orders = await _baseOrderInfoServices.QueryAsync(x => x.OrderCode == TempOffLineInfo.ProductOrderNo); //BaseOrderInfo order = orders.FirstOrDefault(); //if (order.CompleteAmount == 0) //{ @@ -217,37 +214,37 @@ namespace Aucma.Core.ProductOffLine.Business /// /// public async Task HandleMaterialBarCode(string BarCode,TempInfo TempOffLineInfo) - { + { try { - TempOffLineInfo.ProductSNCode = BarCode.Trim(); //SN码 - TempOffLineInfo.ProductScanTime = System.DateTime.Now; - - TempOffLineInfo.ProductOrderNo = ""; + Thread.Sleep(10000); + TempOffLineInfo.ProductSNCode = BarCode.Trim(); //产品SN条码*1 + TempOffLineInfo.ProductScanTime = System.DateTime.Now; // 扫码时间*2 + TempOffLineInfo.ProductOrderNo = ""; log.Info("条码验证开始:" + BarCode); //1.查询条码系统 - string result = await _productOffLineServices.QueryChecked(BarCode); - // string result = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000000807@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01"; + // string result = await _productOffLineServices.QueryChecked(BarCode); + string result = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000004899@BCD-160C,家电下乡@@BCD-160C@test皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01"; - //查询到的数据分割处理,结果中用"@"号分隔,刷新页面显示 - string[] FArrayList = result.Split('@'); + //查询到的数据分割处理,结果中用"@"号分隔,刷新页面显示 + string[] FArrayList = result.Split('@'); if (FArrayList[0].ToUpper() == "Y") //查询数据成功 { - log.Info(BarCode + "成功返回验证信息:" + result); + #region 实体赋值 - TempOffLineInfo.MsgInfo = "获取信息成功" + BarCode + " 返回值:" + FArrayList[0].ToUpper(); + TempOffLineInfo.MsgInfo = "获取信息成功" + BarCode + " 返回值:" + FArrayList[0].ToUpper(); // 提示信息*7 TempOffLineInfo.ProductFactoryCode = FArrayList[1]; TempOffLineInfo.ProductSNCode = FArrayList[2]; - TempOffLineInfo.ProductOrderNo = DBToString(FArrayList[3]).Replace("0000", ""); + TempOffLineInfo.ProductOrderNo = DBToString(FArrayList[3]).Replace("0000", ""); // 订单编号*4 TempOffLineInfo.ProductSaleNo = DBToString(FArrayList[4]); TempOffLineInfo.ProductSaleLineNo = DBToString(FArrayList[5]); TempOffLineInfo.ProductCheckInfo = DBToString(FArrayList[6]); //验证组合 TempOffLineInfo.ProductCode = DBToString(FArrayList[7]).Replace("00000000", ""); TempOffLineInfo.ProductName = DBToString(FArrayList[8]); //产品描述 TempOffLineInfo.ProductType = FArrayList[9]; - TempOffLineInfo.ProductModel = FArrayList[10]; //产品型号 + TempOffLineInfo.ProductModel = FArrayList[10]; //产品型号*3 TempOffLineInfo.ProductRemark = DBToString(FArrayList[11]); TempOffLineInfo.ProductBarNo = FArrayList[12]; TempOffLineInfo.ProductMasterModel = FArrayList[13]; //产品主型号 @@ -256,7 +253,8 @@ namespace Aucma.Core.ProductOffLine.Business TempOffLineInfo.ProductCirculate = FArrayList[16];//流通特性 TempOffLineInfo.ProductCreateDate = FArrayList[17]; #endregion - + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; // 多码系统校验,是否需要待定,现场看情况 // bool flag = TestBarCode(TempOffLineInfo); // if (!flag) @@ -268,8 +266,8 @@ namespace Aucma.Core.ProductOffLine.Business else { log.Info(BarCode + "失败返回验证信息:" + FArrayList[1]); + #region 实体赋值 - // TempOffLineInfo.ProductDataFlag = true; TempOffLineInfo.MsgAlarmFlag = true; TempOffLineInfo.MsgInfo = "获取信息失败. " + BarCode + " 返回值:" + FArrayList[0].ToString(); TempOffLineInfo.ProductOrderNo = ""; @@ -293,6 +291,8 @@ namespace Aucma.Core.ProductOffLine.Business TempOffLineInfo.sim = ""; TempOffLineInfo.number1 = ""; #endregion + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; return false; } // mes查询订单数据, 异常处理:后期可能根据SN码查箱体码,查订单号并检查更新订单数据 @@ -300,18 +300,21 @@ namespace Aucma.Core.ProductOffLine.Business //2.上传条码系统 if (!string.IsNullOrEmpty(TempOffLineInfo.ProductOrderNo)) { - string strSave = await _productOffLineServices.SaveBarcodeInfo(BarCode.Trim(), "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1); - if (!string.IsNullOrEmpty(strSave)) + // string strSave = await _productOffLineServices.SaveBarcodeInfo(BarCode.Trim(), "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1); + string strSave = "Y"; + if (!string.IsNullOrEmpty(strSave)) { if (strSave == "Y") { log.Info(BarCode + "上传条码成功:" + strSave); - TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码成功" + strSave; - if (order != null) + TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码成功"; + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; + if (order != null) { - TempOffLineInfo.OrderQty = order.OrderAmount; - TempOffLineInfo.ActQty = order.CompleteAmount; + TempOffLineInfo.OrderQty = order.OrderAmount; // 订单数量*5 + TempOffLineInfo.ActQty = order.CompleteAmount; // 订单已上传*6 } return true; } @@ -319,40 +322,53 @@ namespace Aucma.Core.ProductOffLine.Business { log.Info(BarCode + "上传条码失败:" + strSave); TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave; - if (strSave.Contains("条码重复")) - { + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; + if (strSave.Contains("条码重复")) + { // 查询本地数据库是否有数据 OffLineInfo offLineInfo = await _offLineInfoServices.FirstAsync(x => x.ProductSNCode == BarCode); if (offLineInfo != null) { - log.Info(BarCode + "条码重复,本地已存在"); - TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave + "上传日期:" + DBToString(offLineInfo.ProductScanTime); + log.Info(BarCode + "条码重复,本地已存在,放行"); + TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + "条码重复,本地已存在,放行"; + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; + return true; // chkout:条码重复是否允许放行 - if (TempOffLineInfo.ChkOut == true) - { - return true; - } + //if (TempOffLineInfo.ChkOut == true) + //{ + // return true; + //} } else { - log.Info(BarCode + "条码重复,本地不存在,已上传中"); - - OffLineInfo info11 = MapperTwo(TempOffLineInfo); - await _offLineInfoServices.AddAsync(info11); - } + log.Info(BarCode + "条码重复,本地不存在,已插入,放行"); + OffLineInfo info11 = MapperTwo(TempOffLineInfo); + await _offLineInfoServices.AddAsync(info11); + return true; + } } - return false; + TempOffLineInfo.MsgAlarmFlag = false; + return false; } } else { - return false; + TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",条码系统保存接口异常"; + TempOffLineInfo.MsgAlarmFlag = true; + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; + return false; } } else { TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",生产单号异常"; + TempOffLineInfo.MsgAlarmFlag = true; + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; return false; } } @@ -360,14 +376,11 @@ namespace Aucma.Core.ProductOffLine.Business { TempOffLineInfo.MsgInfo = "获取产品条码异常:" + ex.Message; TempOffLineInfo.MsgAlarmFlag = true; - + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; log.Info(BarCode + "条码验证异常:" + ex.Message.ToString()); return false; } - finally - { - TempOffLineInfo.ProductRefreshFlag = true; - } } #region plc交互 @@ -402,7 +415,7 @@ namespace Aucma.Core.ProductOffLine.Business // 往plc写入放行信号 obj.plc.WriteInt32("D202", 1); } - DateTime targetTime = DateTime.Now.AddSeconds(8); + DateTime targetTime = DateTime.Now.AddSeconds(60); // 等待plc反馈信号 while (true) { diff --git a/Aucma.Core.ProductOffLine/Models/TempInfo.cs b/Aucma.Core.ProductOffLine/Models/TempInfo.cs index 5f5a9e54..abba589f 100644 --- a/Aucma.Core.ProductOffLine/Models/TempInfo.cs +++ b/Aucma.Core.ProductOffLine/Models/TempInfo.cs @@ -95,14 +95,7 @@ namespace Aucma.Core.ProductOffLine.Models /// 刷新标志,定时器检测true刷新 /// public bool ProductRefreshFlag { get; set; } - /// - /// 朗读标志,1放行扫码成功,2保存条码失败,3条码验证失败 - /// - public int ReadFlag { get; set; } - /// - /// 刷新页面信息标志 - /// - public bool ProductDataFlag { get; set; } + /// /// 界面提示信息 /// @@ -119,11 +112,14 @@ namespace Aucma.Core.ProductOffLine.Models /// 已生产数量 /// public int ActQty { get; set; } + + #region 多码验证属性 public string oneCode { get; set; } public string serialNumber { get; set; } public string rfid { get; set; } public string sim { get; set; } public string number1 { get; set; } + #endregion /// /// 扫码重复是否允许放行,界面加选择栏 /// diff --git a/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs b/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs index 9db35db2..97e710a8 100644 --- a/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs @@ -34,6 +34,7 @@ using NPOI.HSSF.Record; using System.Windows; using System.Collections.ObjectModel; using Aucma.Core.ProductOffLine.Models; +using System.Globalization; /* @@ -49,59 +50,125 @@ namespace Aucma.Core.ProductOffLine.ViewModels // 成品下线操作mes数据 private readonly IOffLineInfoServices? _offLineInfoServices = App.ServiceProvider.GetService(); + System.Timers.Timer timer = new System.Timers.Timer(1000 * 1);//界面刷新定时器 + private OffLineBusiness offLineBusiness = OffLineBusiness.Instance; int a = 0; public IndexPageViewModel() { offLineBusiness.test(); - _offLineInfoServices = App.ServiceProvider.GetService(); - // test33(); - + _offLineInfoServices = App.ServiceProvider.GetService(); InitEveryDayMethod(); + // 刷新界面信息 + RefreshPageListen(); + } - - + + #region 参数定义 + #region 扫描信息 - #region 物料条码 - private string _stationName; - public string StationName + #region 产品条码 + private string _productSNCode; + public string ProductSNCode + { + get { return _productSNCode; } + set + { + _productSNCode = value; + OnPropertyChanged(nameof(ProductSNCode)); + } + } + #endregion + + #region 扫描时间 + private string _productScanTime; + public string ProductScanTime { - get { return _stationName; } + get { return _productScanTime; } set { - _stationName = value; - SetProperty(ref _stationName, value); + _productScanTime = value; + OnPropertyChanged(nameof(ProductScanTime)); } } #endregion - #region 物料名称 - private string _materialName; - public string MaterialName + #region 产品型号 + private string _productModel; + public string ProductModel + { + get { return _productModel; } + set + { + _productModel = value; + OnPropertyChanged(nameof(ProductModel)); + } + } + #endregion + + #region 订单编号 + private string _productOrderNo; + public string ProductOrderNo + { + get { return _productOrderNo; } + set + { + _productOrderNo = value; + OnPropertyChanged(nameof(ProductOrderNo)); + } + } + #endregion + #region 订单数量 + private string _orderQty; + public string OrderQty + { + get { return _orderQty; } + set + { + _orderQty = value; + OnPropertyChanged(nameof(OrderQty)); + } + } + #endregion + #region 订单已上传 + private string _actQty; + public string ActQty { - get { return _materialName; } + get { return _actQty; } set { - _materialName = value; - SetProperty(ref _materialName, value); + _actQty = value; + OnPropertyChanged(nameof(ActQty)); } } #endregion - #region 订单信息 - private string _orderNo; - public string OrderNo + #region 界面提示信息 + private string _msgInfo; + public string MsgInfo + { + get { return _msgInfo; } + set + { + _msgInfo = value; + OnPropertyChanged(nameof(MsgInfo)); + } + } + private Brush _msgColor; + public Brush MsgColor { - get { return _orderNo; } + get { return _msgColor; } set { - _orderNo = value; - SetProperty(ref _orderNo, value); + _msgColor = value; + OnPropertyChanged(nameof(MsgColor)); } } + #endregion + #region 开始时间 private string _beginTime; public string BeginTime @@ -110,48 +177,141 @@ namespace Aucma.Core.ProductOffLine.ViewModels set { _beginTime = value; - SetProperty(ref _beginTime, value); + OnPropertyChanged(nameof(BeginTime)); } } #endregion #endregion - private void LoadProduct() + #region 日产量柱状图 + + /// + /// 日产量柱状图 + /// + private SeriesCollection achievement = new SeriesCollection(); + + public SeriesCollection Achievement { - ChartValues achievement = new ChartValues(); - - App.Current.Dispatcher.BeginInvoke((Action)(() => + get { return achievement; } + set { achievement = value; } + } + + #endregion + + #region 型号统计柱状图 + /// + /// 型号统计柱状图 + /// + private SeriesCollection modelStatistics = new SeriesCollection(); + + public SeriesCollection ModelStatistics + { + get { return modelStatistics; } + set { modelStatistics = value; } + } + #endregion + + #region 日产量柱状图X轴日期 + /// + /// 日产量柱状图X轴日期 + /// + private List productionHourList; + + public List ProductionHourList + { + get { return productionHourList; } + set { productionHourList = value; } + } + #endregion + + #region 型号统计柱状图X轴日期 + /// + /// 型号统计柱状图X轴日期 + /// + private List materialNameList; + + public List MaterialNameList + { + get { return materialNameList; } + set { materialNameList = value; } + } + #endregion + + #region 初始化datagrid + private ObservableCollection listItems = new ObservableCollection() { }; + public ObservableCollection ListItems + { + get { return listItems; } + set { - Achievement.Clear(); - for (int i = 0; i < 5; i++) - { - ProductionHourList.Add(i.ToString()); - achievement.Add(1 + i * 10); - } + listItems = value; + OnPropertyChanged();//属性通知 + } + } + #endregion + #endregion - var column = new ColumnSeries(); - column.DataLabels = true; - column.Title = "泡后库"; - column.Values = achievement; - Achievement.Add(column); - ModelStatistics.Add(column); - })); + #region 界面刷新定时器 + public void RefreshPageListen() + { + timer.Elapsed += new System.Timers.ElapsedEventHandler(RefreshPage); + timer.AutoReset = true; + timer.Enabled = true; + timer.Start(); + } + /// + /// 定时检测两个扫码实体是否需要刷新 + /// + /// + /// + public void RefreshPage(object source, System.Timers.ElapsedEventArgs e) + { + if (OffLineBusiness.TempOffLineInfo1.ProductRefreshFlag == true) + { + ModelToPage(OffLineBusiness.TempOffLineInfo1); + OffLineBusiness.TempOffLineInfo1.ProductRefreshFlag = false; + } + else if(OffLineBusiness.TempOffLineInfo2.ProductRefreshFlag == true) + { + ModelToPage(OffLineBusiness.TempOffLineInfo2); + OffLineBusiness.TempOffLineInfo2.ProductRefreshFlag = false; + } } + public void ModelToPage(TempInfo tempInfo) + { + App.Current.Dispatcher.Invoke(() => + { + ProductSNCode = tempInfo.ProductSNCode; + ProductScanTime = tempInfo.ProductScanTime.ToString(); + ProductModel = tempInfo.ProductModel; + ProductOrderNo = tempInfo.ProductOrderNo; + OrderQty = tempInfo.OrderQty.ToString(); + ActQty = tempInfo.ActQty.ToString(); + MsgInfo = tempInfo.MsgInfo; + if (tempInfo.MsgAlarmFlag==null || tempInfo.MsgAlarmFlag==false) + { + MsgColor = Brushes.White; + } + else + { + MsgColor = Brushes.Red; + } + tempInfo.MsgAlarmFlag = false; + }); + } + #endregion private void InitEveryDayMethod() { LoadData(); - StationName = "成品下线扫描"; - MaterialName = "SC-AUCMA-农夫山泉,SC 门体"; - OrderNo = "8512365486"; BeginTime = DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss"); ChartValues achievement = new ChartValues(); Random random = new Random(); for (int i = 0; i < 5; i++) { - achievement.Add(random.Next(60, 100)); + achievement.Add(random.Next(60, 100)); } var column = new ColumnSeries(); @@ -191,11 +351,11 @@ namespace Aucma.Core.ProductOffLine.ViewModels column2.Foreground = Brushes.White; Achievement.Add(column2); // 加载datagrid - + } public async void LoadData() { - List list = await _offLineInfoServices.QueryAsync(x=>x.ProductScanTime >= System.DateTime.Now.AddDays(-1), "PRODUCT_SCANTIME desc"); + List list = await _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= System.DateTime.Now.AddDays(-1), "PRODUCT_SCANTIME desc"); if (list != null) { foreach (OffLineInfo record in list) @@ -209,76 +369,7 @@ namespace Aucma.Core.ProductOffLine.ViewModels } } - #region 初始化datagrid - private ObservableCollection listItems = new ObservableCollection() { }; - public ObservableCollection ListItems - { - get { return listItems; } - set - { - listItems = value; - OnPropertyChanged();//属性通知 - } - } - #endregion - - - #region 日产量柱状图 - - /// - /// 日产量柱状图 - /// - private SeriesCollection achievement = new SeriesCollection(); - public SeriesCollection Achievement - { - get { return achievement; } - set { achievement = value; } - } - - #endregion - - #region 型号统计柱状图 - /// - /// 型号统计柱状图 - /// - private SeriesCollection modelStatistics = new SeriesCollection(); - - public SeriesCollection ModelStatistics - { - get { return modelStatistics; } - set { modelStatistics = value; } - } - #endregion - - #region 日产量柱状图X轴日期 - /// - /// 日产量柱状图X轴日期 - /// - private List productionHourList; - - public List ProductionHourList - { - get { return productionHourList; } - set { productionHourList = value; } - } - #endregion - - #region 型号统计柱状图X轴日期 - /// - /// 型号统计柱状图X轴日期 - /// - private List materialNameList; - - public List MaterialNameList - { - get { return materialNameList; } - set { materialNameList = value; } - } - #endregion - - - } -} +} \ No newline at end of file diff --git a/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml b/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml index 82bf56f1..728d20b4 100644 --- a/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml +++ b/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml @@ -163,48 +163,50 @@ + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + +