liuwf 1 year ago
commit 10217f4f63

@ -4621,6 +4621,36 @@
工位
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.StationHourAmountView.RowNum">
<summary>
产线编码
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.StationHourAmountView.ProductlineCode">
<summary>
产线编码
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.StationHourAmountView.ProductDate">
<summary>
时间
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.StationHourAmountView.ProductHour">
<summary>
小时
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.StationHourAmountView.BackPanelHourAmount">
<summary>
背板数量
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.StationHourAmountView.SidPanelHourAmount">
<summary>
前板数量
</summary>
</member>
<member name="T:Admin.Core.Model.ViewModels.WorkTime">
<summary>
条码绑定扫描类型统计

@ -12,5 +12,7 @@ namespace Admin.Core.IRepository
{
Task<List<dynamic>> GetStationMaterialStats(string stationCode);
Task<List<dynamic>> GetStationHourAmount(string stationCode);
Task<List<dynamic>> GetStationSheetMetalHourAmountAsync(string stationCode);
}
}

@ -27,11 +27,6 @@ namespace Admin.Core.IRepository
/// <param name="productLineCode"></param>
/// <returns></returns>
Task<List<ProductLineInfoView>> GetProductLineInfo(string productLineCode);
/// <summary>
/// 根据工位查询时间
/// </summary>
/// <param name="stationCode"></param>
/// <returns></returns>
List<dynamic> GetStationHourAmountAsync(string stationCode);
}
}

@ -107,6 +107,10 @@ namespace Admin.Core.IService
/// <param name="stationCode"></param>
/// <returns></returns>
Task<List<dynamic>> GetStationMaterialStats(string stationCode);
Task<List<dynamic>> GetStationSheetMetalHourAmountAsync(string stationCode);
#endregion
}
}

@ -36,11 +36,6 @@ namespace Admin.Core.IService
/// <param name="productLineCode"></param>
/// <returns></returns>
Task<ProductLineInfoView> GetProductLineInfo(string productLineCode);
/// <summary>
/// 根据工位查询小时
/// </summary>
/// <param name="stationCode"></param>
/// <returns></returns>
List<dynamic> GetStationHourAmountAsync(string stationCode);
}
}

@ -0,0 +1,44 @@
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 StationHourAmountView
{
/// <summary>
/// 产线编码
/// </summary>
[SugarColumn(ColumnName = "ROWNUM")]
public string RowNum { get; set; }
/// <summary>
/// 产线编码
/// </summary>
[SugarColumn(ColumnName = "PRODUCTLINE_CODE")]
public string ProductlineCode { get; set; }
/// <summary>
/// 时间
/// </summary>
[SugarColumn(ColumnName = "PRODUCT_DATE")]
public string ProductDate { get; set; }
/// <summary>
/// 小时
/// </summary>
[SugarColumn(ColumnName = "PRODUCT_HOUR")]
public string ProductHour { get; set; }
/// <summary>
/// 背板数量
/// </summary>
[SugarColumn(ColumnName = "BACKPANELHOURAMOUNT")]
public string BackPanelHourAmount { get; set; }
/// <summary>
/// 前板数量
/// </summary>
[SugarColumn(ColumnName = "SIDPANELHOURAMOUNT")]
public string SidPanelHourAmount { get; set; }
}
}

@ -2,6 +2,7 @@
using Admin.Core.Model;
using SqlSugar;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Admin.Core.Repository
@ -24,5 +25,15 @@ namespace Admin.Core.Repository
{
return await Db.Queryable<dynamic>().AS("GET_STATION_HOURAMOUNT").Where("PRODUCTLINE_CODE = @stationCode", new { stationCode = stationCode }).ToListAsync();
}
/// <summary>
/// 获取钣金生产小时数
/// </summary>
/// <param name="stationCode"></param>
/// <returns></returns>
public async Task<List<dynamic>> GetStationSheetMetalHourAmountAsync(string stationCode)
{
return await Db.Queryable<dynamic>().AS("GET_STATION_SHEETMETALHOURAMOUNT").ToListAsync();
}
}
}

@ -6,6 +6,7 @@ using Admin.Core.Model.Model_New;
using System.Collections.Generic;
using System;
using Microsoft.IdentityModel.Logging;
using System.Linq;
namespace Admin.Core.Repository
{
@ -56,24 +57,6 @@ namespace Admin.Core.Repository
#endregion
/// <summary>
/// 获取班组小时数
/// </summary>
/// <param name="stationCode"></param>
/// <returns></returns>
public List<dynamic> GetStationHourAmountAsync(string stationCode)
{
List<dynamic> result = null;
try
{
result = Db.Queryable<dynamic>().AS("GET_STATION_HOURAMOUNT").Where("PRODUCTLINE_CODE = @stationCode", new { stationCode = stationCode }).ToList();
}
catch (Exception ex)
{
}
return result;
}
}
}

@ -23,12 +23,13 @@ namespace Admin.Core.Service
private readonly IProductPlanInfoServices _productPlanInfoServices;
public ExecutePlanInfoServices(IBaseRepository<ExecutePlanInfo> dal, IProductOrderInfoServices productOrderInfoServices,
IProductPlanInfoServices productPlanInfoServices)
IProductPlanInfoServices productPlanInfoServices, IExecutePlanInfoRepository executePlanInfoRepository)
{
this._dal = dal;
base.BaseDal = dal;
_productOrderInfoServices = productOrderInfoServices;
_productPlanInfoServices = productPlanInfoServices;
_executePlanInfoRepository = executePlanInfoRepository;
}
#region 计划删除
@ -385,5 +386,15 @@ namespace Admin.Core.Service
}
return planInfos;
}
/// <summary>
/// 获取钣金生产小时数
/// </summary>
/// <param name="stationCode"></param>
/// <returns></returns>
public async Task<List<dynamic>> GetStationSheetMetalHourAmountAsync(string stationCode)
{
return await _executePlanInfoRepository.GetStationSheetMetalHourAmountAsync(stationCode);
}
}
}

@ -33,10 +33,10 @@ namespace Admin.Core.IService
}
public async Task<CurrentTeamTimeView> GetTeamData(DateTime nowDate)
{
var list= await _sysUserInfoRepository.GetTeamData();
var list = await _sysUserInfoRepository.GetTeamData();
if (list.Count() == 0) return null;
CurrentTeamTimeView view = list.SingleOrDefault(d=>d.StartTime<= nowDate && nowDate <= d.EndTime);
CurrentTeamTimeView view = list.SingleOrDefault(d => d.StartTime <= nowDate && nowDate <= d.EndTime);
if (view != null)
return view;
else
@ -67,14 +67,7 @@ namespace Admin.Core.IService
var obj = list.SingleOrDefault(d => d.ProductlineCode == productLineCode);
return obj;
}
/// <summary>
/// 根据工位查询小时
/// </summary>
/// <param name="stationCode"></param>
/// <returns></returns>
public List<dynamic> GetStationHourAmountAsync(string stationCode)
{
return _sysUserInfoRepository.GetStationHourAmountAsync(stationCode);
}
}
}

@ -2,28 +2,19 @@
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using Admin.Core.Model.ViewModels;
using Admin.Core.Service;
using Admin.Core.Tasks;
using Aucma.Core.HwPLc;
using Aucma.Core.OldBoxFoam.Business;
using Aucma.Core.OldBoxFoam.Models;
using Aucma.Core.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using log4net;
using Microsoft.Extensions.DependencyInjection;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Documents;
/**
* 线
* */
@ -300,7 +291,6 @@ namespace Aucma.Core.OldBoxFoam.ViewModels
BoxFoamDataRealTime bfd = bfds.SingleOrDefault(d => d.FixtureBoxtype == bLis[j].FixtureBoxType && d.SerialNumber == bLis[j].ObjId);
if (bfd != null)
{
//更新计划数量
complateAmount = bLis[j].Yield - bfd.FixtureProductioncapacity;
UpdateClampData(bLis[j], bfd);

@ -11,21 +11,15 @@ using System.Threading.Tasks;
using Admin.Core.IService;
using Microsoft.Extensions.DependencyInjection;
using Aucma.Core.SheetMetal.Common;
using Admin.Core.Tasks;
using CommunityToolkit.Mvvm.Messaging;
using LiveCharts;
using LiveCharts.Wpf;
using Admin.Core.Model;
using System.Windows.Media;
using log4net;
using Admin.Core.Common;
using LiveCharts.Defaults;
using Aucma.Core.SheetMetal.Business;
using static Aucma.Core.SheetMetal.Business.SheetMetalPlanTaskHandle;
using System.Threading;
using NetTaste;
using Aucma.Core.HwPLc;
using Admin.Core.Model.ViewModels;
using Admin.Core.Service;
using NPOI.SS.Formula.Functions;
/*
*
*/
@ -34,9 +28,9 @@ namespace Aucma.Core.SheetMetal.ViewModels
public partial class IndexPageViewModel : ObservableObject
{
protected readonly IExecutePlanInfoServices? _taskExecutionPlanInfoServices;
protected readonly ISysUserInfoServices? _sysUserInfoServices;
//private SheetMetalPlanTaskHandle _taskHandle = new SheetMetalPlanTaskHandle();
protected readonly IRecordBackPanelComplateServices _recordBackPanelComplateServices;
protected readonly IRecordSidePanelComplateServices _recordSidePanelComplateServices;
protected readonly IBaseBomInfoServices _baseBomInfoServices;
private AppConfigHelper appConfig = new AppConfigHelper();
List<SelectModel> list = new List<SelectModel>() { new SelectModel()
{
@ -55,14 +49,16 @@ namespace Aucma.Core.SheetMetal.ViewModels
{
_stationName = Appsettings.app("StationInfo", "StationName");//工位名称
_taskExecutionPlanInfoServices = App.ServiceProvider.GetService<IExecutePlanInfoServices>();
_sysUserInfoServices = App.ServiceProvider.GetService<ISysUserInfoServices>();
_recordBackPanelComplateServices = App.ServiceProvider.GetService<IRecordBackPanelComplateServices>();
_recordSidePanelComplateServices = App.ServiceProvider.GetService<IRecordSidePanelComplateServices>();
_baseBomInfoServices = App.ServiceProvider.GetService<IBaseBomInfoServices>();
//Job_SheetMetalTask_Quartz.SmEverDayDelegateEvent += InitEveryDayMethod;
//Job_SheetMetalTask_Quartz.SmTaskDelegateEvent += UpdatePlanSHow;//计划内容展示
//WeakReferenceMessenger.Default.Register<string>(this, Recive);
Task.WaitAll(LoadData());
//InitEveryDayMethod();
AddSelectData();//添加下拉菜单
//RefreshHourAmount();//小时产量
RefreshHourAmount();//小时产量
//RefreshMaterialStats();//型号产量
SheetMetalPlanTaskHandle.RefreshCurrentPlanInfoEvent += RefreshCurrentPlanInfo;
}
@ -669,17 +665,20 @@ namespace Aucma.Core.SheetMetal.ViewModels
App.Current.Dispatcher.Invoke((Action)(() =>
{
//获取小时产量
string stationCode = Appsettings.app("StoreInfo", "StationCode");
List<dynamic> hourAmount = _sysUserInfoServices.GetStationHourAmountAsync(stationCode);
string stationCode = Appsettings.app("StationInfo", "StationCode");
List<dynamic> hourAmount = _taskExecutionPlanInfoServices.GetStationSheetMetalHourAmountAsync(stationCode).Result;
if (hourAmount != null)
{
Achievement.Clear();
ProductionHourList = new List<string>();
ChartValues<double> hourAchievement = new ChartValues<double>();
//ChartValues<double> hourAchievement = new ChartValues<double>();
ChartValues<ObservablePoint> hourAchievement = new ChartValues<ObservablePoint>();
foreach (var item in hourAmount)
{
ObservablePoint point=new ObservablePoint(Convert.ToInt32(item.SIDPANELHOURAMOUNT), Convert.ToInt32(item.BACKPANELHOURAMOUNT));
ProductionHourList.Add(item.PRODUCT_HOUR);
hourAchievement.Add(Convert.ToDouble(item.PRODUCT_AMOUNT));
hourAchievement.Add(point);
//hourAchievement.Add(Convert.ToDouble(item.PRODUCT_AMOUNT));
}
var houeColumn = new ColumnSeries();
houeColumn.DataLabels = true;
@ -691,5 +690,55 @@ namespace Aucma.Core.SheetMetal.ViewModels
}));
}
#endregion
#region 刷新物料型号统计
/// <summary>
/// 刷新物料型号统计
/// </summary>
private void RefreshMaterialStats()
{
App.Current.Dispatcher.Invoke((Action)(() =>
{
//获取物料型号统计
string stationCode = Appsettings.app("StationInfo", "StationCode");
List<dynamic> materialStats = _taskExecutionPlanInfoServices.GetStationMaterialStats(stationCode).Result;
var baseBomInfoList = _baseBomInfoServices.QueryAsync().Result;
var taskExecutionPlanInfo=_taskExecutionPlanInfoServices.QueryAsync(d=>d.ProductLineCode== stationCode).Result;
var recordBackPanelList = _recordBackPanelComplateServices.QueryAsync().Result;
//有问题,需要修改才可以
var list = (from d in recordBackPanelList
join t in taskExecutionPlanInfo on d.PlanCode equals t.TaskCode
join b in baseBomInfoList on d.MaterialCode equals b.MaterialCode
select new
{
MaterialCode=b.MaterialCode,
ProductPlanCode=t.ProductPlanCode,
CompleteAmount= t.CompleteAmount
}).ToList();
if (list != null)
{
ModelStatistics.Clear();
MaterialNameList = new List<string>();
ChartValues<double> materialAchievement = new ChartValues<double>();
foreach (var item in materialStats)
{
MaterialNameList.Add(item.MATERIAL_NAME);
materialAchievement.Add(Convert.ToDouble(item.PRODUCT_AMOUNT));
}
var materialColumn = new ColumnSeries();
materialColumn.DataLabels = true;
materialColumn.Title = "型号";
materialColumn.Values = materialAchievement;
materialColumn.Foreground = Brushes.White;
ModelStatistics.Add(materialColumn);
}
}));
#endregion
}
}
}

@ -10,7 +10,7 @@ using System.Windows.Interop;
using System.Collections.ObjectModel;
using Admin.Core.Common;
using System.IO;
using Aucma.Core.PLc;
using Aucma.Core.HwPLc;
using Aucma.Core.Scanner;
using System.Linq;
using System.Threading.Tasks;

@ -44,7 +44,7 @@
"ConnId": "AUCMA_SCADA",
"DBType": 3,
"Enabled": true,
"HitRate": 50,
"HitRate": 30,
//"Connection": "Data Source=localhost;Initial Catalog=Hsdb;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"Connection": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.72.20)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)));User ID=c##aucma_scada;Password=aucma;",
"ProviderName": "System.Data.SqlClient"

Loading…
Cancel
Save