diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml
index e92cb60d..7f840075 100644
--- a/Admin.Core.Api/Admin.Core.Model.xml
+++ b/Admin.Core.Api/Admin.Core.Model.xml
@@ -5046,6 +5046,41 @@
工位
+
+
+ 小时
+
+
+
+
+ 前板数量
+
+
+
+
+ 后板数量
+
+
+
+
+ 物料名称
+
+
+
+
+ 工位
+
+
+
+
+ 前板数量
+
+
+
+
+ 后板数量
+
+
产线编码
diff --git a/Admin.Core.IRepository/IRepository_New/ISysUserInfoRepository.cs b/Admin.Core.IRepository/IRepository_New/ISysUserInfoRepository.cs
index 724c35a4..c0cbf020 100644
--- a/Admin.Core.IRepository/IRepository_New/ISysUserInfoRepository.cs
+++ b/Admin.Core.IRepository/IRepository_New/ISysUserInfoRepository.cs
@@ -28,5 +28,17 @@ namespace Admin.Core.IRepository
///
Task> GetProductLineInfo(string productLineCode);
+ ///
+ /// 统计前后板型号数据
+ ///
+ ///
+ ///
+ Task> GetSheetMetalTypeData(string productLineCode);
+ ///
+ /// 统计前后板小时数据
+ ///
+ ///
+ ///
+ Task> GetSheetMetaHourData(string productLineCode);
}
}
\ No newline at end of file
diff --git a/Admin.Core.IService/IService_New/ISysUserInfoServices.cs b/Admin.Core.IService/IService_New/ISysUserInfoServices.cs
index ed361950..13e7b320 100644
--- a/Admin.Core.IService/IService_New/ISysUserInfoServices.cs
+++ b/Admin.Core.IService/IService_New/ISysUserInfoServices.cs
@@ -36,6 +36,19 @@ namespace Admin.Core.IService
///
///
Task GetProductLineInfo(string productLineCode);
-
+ ///
+ /// 统计前后板数据
+ ///
+ ///
+ ///
+
+ Task> GetSheetMetalTypeData(string productLineCode);
+ ///
+ /// 统计前后板小时数据
+ ///
+ ///
+ ///
+
+ Task> GetSheetMetaHourData(string productLineCode);
}
}
\ No newline at end of file
diff --git a/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs b/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs
new file mode 100644
index 00000000..815a8288
--- /dev/null
+++ b/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs
@@ -0,0 +1,28 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Model.ViewModels
+{
+ public class SheetMetaHourDataView
+ {
+ ///
+ /// 小时
+ ///
+ [SugarColumn(ColumnName = "HOUR_TIME")]
+ public string HourTime { get; set; }
+ ///
+ /// 前板数量
+ ///
+ [SugarColumn(ColumnName = "FRONTPLATE_AMOUNT")]
+ public string FrontPlateAmount { get; set; }
+ ///
+ /// 后板数量
+ ///
+ [SugarColumn(ColumnName = "REARPANEL_AMOUNT")]
+ public string RearPanelAmount { get; set; }
+ }
+}
diff --git a/Admin.Core.Model/ViewModels/SheetMetalTypeDataView.cs b/Admin.Core.Model/ViewModels/SheetMetalTypeDataView.cs
new file mode 100644
index 00000000..7de52294
--- /dev/null
+++ b/Admin.Core.Model/ViewModels/SheetMetalTypeDataView.cs
@@ -0,0 +1,33 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Model.ViewModels
+{
+ public class SheetMetalTypeDataView
+ {
+ ///
+ /// 物料名称
+ ///
+ [SugarColumn(ColumnName = "MATERIAL_SPECIFICATIONS")]
+ public string MaterialName { get; set; }
+ ///
+ /// 工位
+ ///
+ [SugarColumn(ColumnName = "PRODUCTLINE_CODE")]
+ public string ProductLineCode { get; set; }
+ ///
+ /// 前板数量
+ ///
+ [SugarColumn(ColumnName = "FRONTPLATE_AMOUNT")]
+ public string FrontPlateAmount { get; set; }
+ ///
+ /// 后板数量
+ ///
+ [SugarColumn(ColumnName = "REARPANEL_AMOUNT")]
+ public string RearPanelAmount { get; set; }
+ }
+}
diff --git a/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs b/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs
index e95aaf86..6a19c873 100644
--- a/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs
+++ b/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs
@@ -57,6 +57,57 @@ namespace Admin.Core.Repository
#endregion
-
+ #region 获取钣金型号统计数据
+ ///
+ /// 获取班组数据
+ ///
+ ///
+ ///
+ public async Task> GetSheetMetalTypeData(string productLineCode)
+ {
+ string sql = @$"WITH CTT AS (SELECT MIN(START_TIME) START_TIME, MAX(END_TIME) END_TIME
+ FROM VIEW_CURRENT_TEAM_TIME)
+ SELECT ML.MATERIAL_SPECIFICATIONS,SPC.PRODUCTLINE_CODE,
+ SUM(CASE
+ WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT
+ WHEN SPC.PLAN_TYPE = 2 THEN SPC.COMPLETE_AMOUNT
+ ELSE 0 END) FRONTPLATE_AMOUNT,
+ SUM(CASE
+ WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT
+ WHEN SPC.PLAN_TYPE = 3 THEN SPC.COMPLETE_AMOUNT
+ ELSE 0 END) REARPANEL_AMOUNT
+ FROM VIEW_EXECUTE_PLANINFO SPC
+ LEFT JOIN BASE_MATERIALINFO ML ON ML.MATERIAL_CODE = SPC.MATERIAL_CODE
+ CROSS JOIN CTT
+ WHERE SPC.BEGIN_TIME > CTT.START_TIME
+ AND SPC.BEGIN_TIME <= CTT.END_TIME and SPC.PRODUCTLINE_CODE='{productLineCode}'
+ GROUP BY ML.MATERIAL_SPECIFICATIONS,SPC.PRODUCTLINE_CODE";
+
+ return await Db.Ado.SqlQueryAsync(sql);
+ }
+
+ #endregion
+ public async Task> GetSheetMetaHourData(string productLineCode)
+ {
+ string sql = @$"SELECT CTT.HOUR_TIME,
+ SUM(CASE
+ WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT
+ WHEN SPC.PLAN_TYPE = 2 THEN SPC.COMPLETE_AMOUNT
+ ELSE 0 END) FRONTPLATE_AMOUNT,
+ SUM(CASE
+ WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT
+ WHEN SPC.PLAN_TYPE = 3 THEN SPC.COMPLETE_AMOUNT
+ ELSE 0 END) REARPANEL_AMOUNT
+ FROM VIEW_CURRENT_TEAM_TIME CTT
+ LEFT JOIN (select * from VIEW_EXECUTE_PLANINFO where PRODUCTLINE_CODE='{productLineCode}') SPC
+ ON SPC.BEGIN_TIME >= CTT.START_TIME AND SPC.BEGIN_TIME < CTT.END_TIME
+
+ GROUP BY CTT.HOUR_TIME
+ ORDER BY CTT.HOUR_TIME";
+
+ return await Db.Ado.SqlQueryAsync(sql);
+ }
+
+
}
}
\ No newline at end of file
diff --git a/Admin.Core.Service/Service_New/SysUserInfoServices.cs b/Admin.Core.Service/Service_New/SysUserInfoServices.cs
index 47ca4939..acd2cce9 100644
--- a/Admin.Core.Service/Service_New/SysUserInfoServices.cs
+++ b/Admin.Core.Service/Service_New/SysUserInfoServices.cs
@@ -67,7 +67,21 @@ namespace Admin.Core.IService
var obj = list.SingleOrDefault(d => d.ProductlineCode == productLineCode);
return obj;
}
-
-
+
+ ///
+ /// 统计前后板数据
+ ///
+ ///
+ ///
+
+ public async Task> GetSheetMetalTypeData(string productLineCode)
+ {
+ return await _sysUserInfoRepository.GetSheetMetalTypeData(productLineCode);
+ }
+
+ public async Task> GetSheetMetaHourData(string productLineCode)
+ {
+ return await _sysUserInfoRepository.GetSheetMetaHourData(productLineCode);
+ }
}
}
\ No newline at end of file
diff --git a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs
index 05dd5ba9..6b96e981 100644
--- a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs
+++ b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs
@@ -62,7 +62,8 @@ namespace Aucma.Core.SheetMetal.ViewModels
//WeakReferenceMessenger.Default.Register(this, Recive);
Task.WaitAll(LoadData());
AddSelectData();//添加下拉菜单
- RefreshHourAmount();//小时产量
+ RefreshHourAmount();//小时产量
+ // InitEveryDayMethod();
RefreshMaterialStats();//型号产量
SheetMetalPlanTaskHandle.RefreshCurrentPlanInfoEvent += RefreshCurrentPlanInfo;
QuantityIssuedViewModel.RefreshCretaePlanInfoEvent += LoadData;
@@ -155,34 +156,34 @@ namespace Aucma.Core.SheetMetal.ViewModels
#endregion
#region 按类型统计
- ChartValues achievement2 = new ChartValues();
- Random random2 = new Random();
- for (int i = 0; i < 2; i++)
- {
- achievement2.Add(random2.Next(60, 100));
- }
- var column2 = new ColumnSeries();
- column2.DataLabels = true;
- column2.Title = "前板";
- column2.Values = achievement2;
- column2.Foreground = Brushes.White;
- column2.FontSize = 18;
- ModelStatistics.Add(column2);
-
- ModelStatistics.Add(new ColumnSeries()
- {
- DataLabels = true,
- Title = "后板",
- Values = achievement2,
- Fill = new SolidColorBrush(Color.FromRgb(15, 209, 226)),
- Foreground = Brushes.White,
- FontSize = 18
- });
-
- MaterialNameList = new List()
- {
- "玻璃门,SC-439", "玻璃门,SC-439,AC"
- };
+ //ChartValues achievement2 = new ChartValues();
+ //Random random2 = new Random();
+ //for (int i = 0; i < 2; i++)
+ //{
+ // achievement2.Add(random2.Next(60, 100));
+ //}
+ //var column2 = new ColumnSeries();
+ //column2.DataLabels = true;
+ //column2.Title = "前板";
+ //column2.Values = achievement2;
+ //column2.Foreground = Brushes.White;
+ //column2.FontSize = 18;
+ //ModelStatistics.Add(column2);
+
+ //ModelStatistics.Add(new ColumnSeries()
+ //{
+ // DataLabels = true,
+ // Title = "后板",
+ // Values = achievement2,
+ // Fill = new SolidColorBrush(Color.FromRgb(15, 209, 226)),
+ // Foreground = Brushes.White,
+ // FontSize = 18
+ //});
+
+ //MaterialNameList = new List()
+ //{
+ // "玻璃门,SC-439", "玻璃门,SC-439,AC"
+ //};
#endregion
//await InitExecMethod();
return Task.CompletedTask;
@@ -199,7 +200,7 @@ namespace Aucma.Core.SheetMetal.ViewModels
string stationCode = Appsettings.app("StationInfo", "StationCode");
CurrentTeamTimeView view = GetTeamHour();
- var list = _taskExecutionPlanInfoServices.QueryAsync(x => x.ProductLineCode == stationCode&& x.CreatedTime> view.StartTime && x.CreatedTime x.ProductLineCode == stationCode&& x.CreatedTime> view.StartTime && x.CreatedTime d.ExecuteOrder);
@@ -675,26 +676,48 @@ namespace Aucma.Core.SheetMetal.ViewModels
{
//获取小时产量
string stationCode = Appsettings.app("StationInfo", "StationCode");
- List hourAmount = _taskExecutionPlanInfoServices.GetStationSheetMetalHourAmountAsync(stationCode).Result;
+ var hourAmount = _sysUserInfoServices.GetSheetMetaHourData(stationCode).Result;
if (hourAmount != null)
{
Achievement.Clear();
+
ProductionHourList = new List();
- //ChartValues hourAchievement = new ChartValues();
- ChartValues hourAchievement = new ChartValues();
+ ChartValues hourAchievement1 = new ChartValues();
+ ChartValues hourAchievement2 = new ChartValues();
+ int hour = 0;
foreach (var item in hourAmount)
{
- ObservablePoint point = new ObservablePoint(Convert.ToInt32(item.SIDPANELHOURAMOUNT), Convert.ToInt32(item.BACKPANELHOURAMOUNT));
- ProductionHourList.Add(item.PRODUCT_HOUR);
- hourAchievement.Add(point);
- //hourAchievement.Add(Convert.ToDouble(item.PRODUCT_AMOUNT));
+ hourAchievement1.Add(new ObservablePoint(hour,Convert.ToDouble(item.FrontPlateAmount)));
+ hourAchievement2.Add(new ObservablePoint(hour,Convert.ToDouble(item.RearPanelAmount)));
+ ProductionHourList.Add(item.HourTime);
+ hour++;
}
- var houeColumn = new ColumnSeries();
- houeColumn.DataLabels = true;
- houeColumn.Title = "小时产量";
- houeColumn.Values = hourAchievement;
- houeColumn.Foreground = Brushes.White;
- Achievement.Add(houeColumn);
+
+
+
+ #region 按时间统计
+
+
+ var column = new ColumnSeries();
+ column.DataLabels = true;
+ column.Title = "前板";
+ column.Values = hourAchievement1;
+ column.Foreground = Brushes.White;
+ column.FontSize = 18;
+
+ Achievement.Add(column);
+
+ Achievement.Add(new ColumnSeries
+ {
+ DataLabels = true,
+ Title = "后板",
+ Values = hourAchievement2,
+ Fill = new SolidColorBrush(Color.FromRgb(15, 209, 226)),
+ Foreground = Brushes.CadetBlue,
+ FontSize = 18
+ });
+
+ #endregion
}
}));
}
@@ -708,29 +731,41 @@ namespace Aucma.Core.SheetMetal.ViewModels
{
App.Current.Dispatcher.Invoke((Action)(() =>
{
-
//获取物料型号统计
string stationCode = Appsettings.app("StationInfo", "StationCode");
- List materialStats = _taskExecutionPlanInfoServices.GetStationSheetMetalStats(stationCode);
-
-
-
- if (materialStats != null)
+ var sheetMetalTypeList = _sysUserInfoServices.GetSheetMetalTypeData(stationCode).Result;
+ if (sheetMetalTypeList != null)
{
- ModelStatistics.Clear();
+ #region 按类型统计
+ ChartValues achievement1 = new ChartValues();
+ ChartValues achievement2 = new ChartValues();
+
MaterialNameList = new List();
- ChartValues materialAchievement = new ChartValues();
- foreach (var item in materialStats)
+ foreach (var item in sheetMetalTypeList)
{
- MaterialNameList.Add(item.MATERIAL_NAME);
- materialAchievement.Add(Convert.ToDouble(item.PRODUCT_AMOUNT));
+ achievement1.Add(Convert.ToInt32(item.FrontPlateAmount));
+ achievement2.Add(Convert.ToInt32(item.RearPanelAmount));
+ MaterialNameList.Add(item.MaterialName);
}
- var materialColumn = new ColumnSeries();
- materialColumn.DataLabels = true;
- materialColumn.Title = "型号";
- materialColumn.Values = materialAchievement;
- materialColumn.Foreground = Brushes.White;
- ModelStatistics.Add(materialColumn);
+ var column2 = new ColumnSeries();
+ column2.DataLabels = true;
+ column2.Title = "前板";
+ column2.Values = achievement1;
+ column2.Foreground = Brushes.White;
+ column2.FontSize = 18;
+ ModelStatistics.Add(column2);
+
+ ModelStatistics.Add(new ColumnSeries()
+ {
+ DataLabels = true,
+ Title = "后板",
+ Values = achievement2,
+ Fill = new SolidColorBrush(Color.FromRgb(15, 209, 226)),
+ Foreground = Brushes.White,
+ FontSize = 18
+ });
+
+ #endregion
}
}));
}
diff --git a/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs
index dcb6c024..9d9bfad8 100644
--- a/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs
+++ b/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs
@@ -69,6 +69,16 @@ namespace Aucma.Core.SheetMetal.ViewModels
[RelayCommand]
private async Task PlanInfoTransmit()
{
+ if (string.IsNullOrEmpty(TransmitAmount))
+ {
+ MessageBox.Show("计划数量不能为空!", "系统提醒");
+ return;
+ }
+ if (PlanInfo.PlanAmount<=Convert.ToInt32(TransmitAmount))
+ {
+ MessageBox.Show("下发数量不能大于计划数量!", "系统提醒");
+ return;
+ }
var productPlanInfo = _PlanInfo;
if (productPlanInfo != null)
{
diff --git a/Aucma.Core.SheetMetal/ViewModels/SplitPlanViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/SplitPlanViewModel.cs
index 194f73a5..5af2ab65 100644
--- a/Aucma.Core.SheetMetal/ViewModels/SplitPlanViewModel.cs
+++ b/Aucma.Core.SheetMetal/ViewModels/SplitPlanViewModel.cs
@@ -356,43 +356,32 @@ namespace Aucma.Core.SheetMetal.ViewModels
[RelayCommand]
public async Task RadioButton(string selectedOption)
{
- string productLineCode = Appsettings.app("StoreInfo", "ProductLineCode");
- List planInfos = await _productPlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(productLineCode) && d.MaterialName.Contains(selectedOption));
- if (planInfos != null)
+ string productLineCode = Appsettings.app("StationInfo", "StationCode");
+ MaterialDataGrid.Clear();
+ int i = 1;
+ string station = Appsettings.app("StationInfo", "StationCode");
+ var planlist = _productPlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(station)&&d.MaterialName.Contains(selectedOption)).Result;
+ if (planlist == null) return;
+ var execList = await _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(station)&& d.MaterialName.Contains(station));
+ if (execList == null) return;
+ foreach (var item in planlist)
{
- if (planInfos.Count > 0)
+ int residue = 0;
+ if (execList == null) residue = 0;
+ else residue = (execList.Where(d => d.MaterialCode.Equals(item.MaterialCode))).Sum(d => d.PlanAmount);
+ MaterialDataGrid.Add(new ProductPlanInfoModel()
{
- MaterialDataGrid.Clear();
- int i = 1;
-
- var execList = await _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(productLineCode));
- foreach (var item in planInfos)
- {
- int residue = 0;
- if (execList == null)
- {
- residue = 0;
- }
- else
- {
- residue = (execList.Where(d => d.MaterialCode.Equals(item.MaterialCode))).Sum(d => d.PlanAmount);
- }
-
- MaterialDataGrid.Add(new ProductPlanInfoModel()
- {
- No = i,
- PlanCode = item.PlanCode,
- MaterialCode = item.MaterialCode,
- MaterialName = item.MaterialName,
- OrderCode = item.OrderCode,
- PlanAmount = item.PlanAmount,
- ResidueAmount = item.PlanAmount - item.CompleteAmount,
- SpliteResidueAmount = item.PlanAmount - residue,
- StartDate = item.BeginTime
- });
- i++;
- }
- }
+ No = i,
+ PlanCode = item.PlanCode,
+ MaterialCode = item.MaterialCode,
+ MaterialName = item.MaterialName,
+ OrderCode = item.OrderCode,
+ PlanAmount = item.PlanAmount,
+ ResidueAmount = item.PlanAmount - item.CompleteAmount,
+ SpliteResidueAmount = item.PlanAmount - residue,
+ StartDate = item.BeginTime
+ });
+ i++;
}
}
diff --git a/Aucma.Core.SheetMetal/Views/MaterialStatisticsView.xaml b/Aucma.Core.SheetMetal/Views/MaterialStatisticsView.xaml
index 0f2338c8..1c095f78 100644
--- a/Aucma.Core.SheetMetal/Views/MaterialStatisticsView.xaml
+++ b/Aucma.Core.SheetMetal/Views/MaterialStatisticsView.xaml
@@ -182,9 +182,12 @@
-
+
+
+
+
diff --git a/Aucma.Core.SheetMetal/Views/SplitPlanView.xaml b/Aucma.Core.SheetMetal/Views/SplitPlanView.xaml
index 9a1b05d2..c7d005db 100644
--- a/Aucma.Core.SheetMetal/Views/SplitPlanView.xaml
+++ b/Aucma.Core.SheetMetal/Views/SplitPlanView.xaml
@@ -232,10 +232,10 @@
Foreground="White" SelectedItem="{Binding SelectedDataItem}" MouseLeftButtonDown="dgvMH_MouseLeftButtonDown">
-
+
-
+
diff --git a/Aucma.Core.SheetMetal/appsettings.json b/Aucma.Core.SheetMetal/appsettings.json
index f3054b0d..369a633d 100644
--- a/Aucma.Core.SheetMetal/appsettings.json
+++ b/Aucma.Core.SheetMetal/appsettings.json
@@ -115,11 +115,11 @@
},
"StationInfo": {
"StationName": "箱壳前后板生产",
- "StationCode": "1001",
- "ShellStoreCode": "XKJCK-001",
- "LinerStoreCode": "NDJCK-001",
- "FoamBeforeStoreCode": "PBSCK-001",
- "ProductLineCode": "CX_01"
+ "StationCode": "1001", //工位
+ "ShellStoreCode": "XKK-001",
+ "LinerStoreCode": "NDK-001",
+ "FoamBeforeStoreCode": "PQK-001",
+ "ProductLineCode": "CX_02"
},
"PLCServer": [
{