feat(BI): 添加轮播大屏功能及相关接口实现
实现质量、工单、毛坯和设备报警大屏的轮播数据展示功能 新增ICarouselBoardService接口及实现类 添加CarouselBoardController控制器处理请求 创建相关DTO模型用于数据传输
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.mes.carouselBoard;
|
||||
using ZR.Service.BI.IService;
|
||||
using ZR.Service.MES.carouselBoard.IService;
|
||||
|
||||
namespace ZR.Admin.WebApi.Controllers.BI
|
||||
{
|
||||
/// <summary>
|
||||
/// 生产看板BI
|
||||
/// </summary>
|
||||
|
||||
[Route("BI/CarouselBoard")]
|
||||
public class CarouselBoardController : BaseController
|
||||
{
|
||||
|
||||
ICarouselBoardService _carouselBoardService;
|
||||
public CarouselBoardController(ICarouselBoardService carouselBoardService)
|
||||
{
|
||||
|
||||
this._carouselBoardService = carouselBoardService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取质量大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getQualityStatisticsCarouselBoardData")]
|
||||
public IActionResult GetQualityStatisticsCarouselBoardData([FromBody] CarouselBoardQuery query)
|
||||
{
|
||||
var response = _carouselBoardService.GetQualityStatisticsCarouselBoardData(query);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取工单大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getWorkOrderCarouselBoardData")]
|
||||
public IActionResult GetWorkOrderCarouselBoardData([FromBody] CarouselBoardQuery query)
|
||||
{
|
||||
var response = _carouselBoardService.GetWorkOrderCarouselBoardData(query);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取毛坯大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getBlankInventoryCarouselBoardData")]
|
||||
public IActionResult GetBlankInventoryCarouselBoardData([FromBody] CarouselBoardQuery query)
|
||||
{
|
||||
var response = _carouselBoardService.GetBlankInventoryCarouselBoardData(query);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取设备报警信息大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getEquipmentAlarmCarouselBoardData")]
|
||||
public IActionResult GetEquipmentAlarmCarouselBoardData([FromBody] CarouselBoardQuery query)
|
||||
{
|
||||
var response = _carouselBoardService.GetEquipmentAlarmCarouselBoardData(query);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取设备实时参数信息大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getEquipmentLiveCarouselBoardData")]
|
||||
public IActionResult GetEquipmentLiveCarouselBoardData([FromBody] CarouselBoardQuery query)
|
||||
{
|
||||
var response = _carouselBoardService.GetEquipmentLiveCarouselBoardData(query);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
349
ZR.Model/MES/BI/carouselBoard/CarouselBoardDto.cs
Normal file
349
ZR.Model/MES/BI/carouselBoard/CarouselBoardDto.cs
Normal file
@@ -0,0 +1,349 @@
|
||||
using MiniExcelLibs.Attributes;
|
||||
|
||||
namespace ZR.Model.mes.carouselBoard
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 查询内容
|
||||
///</summary>
|
||||
public class CarouselBoardQuery
|
||||
{
|
||||
public string Text { get; set; } = string.Empty;
|
||||
public string SubText { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 工单大屏信息
|
||||
/// </summary>
|
||||
public class WorkOrderCarouseDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 工单号WO20240301001
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 毛坯号
|
||||
/// </summary>
|
||||
public string BlankNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成品零件号
|
||||
/// </summary>
|
||||
public string FinishedPartNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品描述
|
||||
/// </summary>
|
||||
public string ProductDescription { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 颜色
|
||||
/// </summary>
|
||||
public string Colour { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 规格
|
||||
/// </summary>
|
||||
public string Specifications { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 编码号
|
||||
/// </summary>
|
||||
public string CodeNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 车数
|
||||
/// </summary>
|
||||
public int VehicleNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 挂具摆放
|
||||
/// </summary>
|
||||
public int HangNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上件数
|
||||
/// </summary>
|
||||
public int PreviousNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 双组号缸号
|
||||
/// </summary>
|
||||
public string CylinderNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注1
|
||||
/// </summary>
|
||||
public string Remark1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注2
|
||||
/// </summary>
|
||||
public string Remark2 { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 备注3,识别是否需要工单
|
||||
/// </summary>
|
||||
public string Remark3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注4 :来源
|
||||
/// </summary>
|
||||
public string Remark4 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 序号
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户工单号
|
||||
/// </summary>
|
||||
public string ClientWorkorder { get; set; }
|
||||
/// <summary>
|
||||
/// 状态:0初态 1上线
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 年
|
||||
/// </summary>
|
||||
public int Year { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 周
|
||||
/// </summary>
|
||||
public int Week { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日
|
||||
/// </summary>
|
||||
public int Date { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 质量大屏信息
|
||||
/// </summary>
|
||||
public class QualityStatisticsCarouseDto
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
///</summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 工单号
|
||||
///</summary>
|
||||
public string WorkorderId { get; set; }
|
||||
/// <summary>
|
||||
/// 零件号
|
||||
///</summary>
|
||||
public string FinishedPartNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 描述
|
||||
///</summary>
|
||||
public string ProductDescription { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 颜色
|
||||
///</summary>
|
||||
public string Color { get; set; }
|
||||
/// <summary>
|
||||
/// 生产投入数
|
||||
///</summary>
|
||||
public int? RequireNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 班次
|
||||
///</summary>
|
||||
public string Team { get; set; }
|
||||
/// <summary>
|
||||
/// 合格数
|
||||
///</summary>
|
||||
public int? QualifiedNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 合格率
|
||||
///</summary>
|
||||
public decimal? QualifiedRate { get; set; }
|
||||
/// <summary>
|
||||
/// 抛光总数
|
||||
///</summary>
|
||||
public int? PaoguangTotal { get; set; }
|
||||
/// <summary>
|
||||
/// 打磨总数
|
||||
///</summary>
|
||||
public int? DamoTotal { get; set; }
|
||||
/// <summary>
|
||||
/// 报废总数
|
||||
///</summary>
|
||||
public int? BaofeiTotal { get; set; }
|
||||
/// <summary>
|
||||
/// 开始时间
|
||||
///</summary>
|
||||
public DateTime? StartTime { get; set; }
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
///</summary>
|
||||
public DateTime? EndTime { get; set; }
|
||||
/// <summary>
|
||||
/// 备注(报废,打磨,抛光)
|
||||
///</summary>
|
||||
public string Remark { get; set; }
|
||||
/// <summary>
|
||||
/// 备注(报废1,打磨2,抛光3)
|
||||
///</summary>
|
||||
public int Remark2 { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 毛坯大屏信息
|
||||
/// </summary>
|
||||
public class BlankInventoryCarouseDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 油漆id
|
||||
/// </summary>
|
||||
public string FkPaintId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 毛坯号
|
||||
/// </summary>
|
||||
public string BlankNum { get; set; }
|
||||
/// <summary>
|
||||
/// 描述
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
/// <summary>
|
||||
/// 颜色
|
||||
/// </summary>
|
||||
public string Color { get; set; }
|
||||
/// <summary>
|
||||
/// 规格
|
||||
/// </summary>
|
||||
public string Specification { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
public int? Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最大库存
|
||||
/// </summary>
|
||||
public int? MaxNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最小库存
|
||||
/// </summary>
|
||||
public int? MinNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预警库存
|
||||
/// </summary>
|
||||
public int? WarnNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类别
|
||||
/// </summary>
|
||||
public int? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备报警大屏信息
|
||||
/// </summary>
|
||||
public class DeviceAlarmCarouseDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 编号
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 报警类别
|
||||
/// </summary>
|
||||
public string AlarmType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 报警内容
|
||||
/// </summary>
|
||||
public string AlarmContent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 报警时间
|
||||
/// </summary>
|
||||
public DateTime? AlarmTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 处理状态
|
||||
/// </summary>
|
||||
public string HandleStatus { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备实时状态
|
||||
/// </summary>
|
||||
public class DeviceLiveCarouseDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 底漆循环温度
|
||||
/// </summary>
|
||||
public string PrimerCycleTemperature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 底漆循环湿度
|
||||
/// </summary>
|
||||
public string PrimerCycleHumidity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 色漆循环温度
|
||||
/// </summary>
|
||||
public string ColorCycleTemperature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 色漆循环湿度
|
||||
/// </summary>
|
||||
public string ColorCycleHumidity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 清漆循环温度
|
||||
/// </summary>
|
||||
public string ClearCycleTemperature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 清漆循环湿度
|
||||
/// </summary>
|
||||
public string ClearCycleHumidity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 纯水电导率
|
||||
/// </summary>
|
||||
public string PureWaterConductivity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 水份烘干温度
|
||||
/// </summary>
|
||||
public string MoistureDryingTemperature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 清漆烘干温度
|
||||
/// </summary>
|
||||
public string ClearDryingTemperature { get; set; }
|
||||
}
|
||||
}
|
||||
91
ZR.Model/MES/Device/DeviceAlarmLog.cs
Normal file
91
ZR.Model/MES/Device/DeviceAlarmLog.cs
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
namespace ZR.Model.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备报警日志表
|
||||
/// </summary>
|
||||
[SugarTable("device_alarm_log")]
|
||||
public class DeviceAlarmLog
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键ID
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 编号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "alarm_no")]
|
||||
public string AlarmNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "alarm_time")]
|
||||
public DateTime? AlarmTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 区域
|
||||
/// </summary>
|
||||
public string Area { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 消息文本
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "message_text")]
|
||||
public string MessageText { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 错误点
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "error_point")]
|
||||
public string ErrorPoint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public string Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 优先级
|
||||
/// </summary>
|
||||
public string Priority { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 持续时间(秒)
|
||||
/// </summary>
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 报警回路
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "alarm_circuit")]
|
||||
public string AlarmCircuit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 确认状态
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "confirm_status")]
|
||||
public string ConfirmStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 消息类型
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "message_type")]
|
||||
public string MessageType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "create_time")]
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "update_time")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -80,20 +80,17 @@
|
||||
[SugarColumn(ColumnName = "end_time")]
|
||||
public DateTime? EndTime { get; set; }
|
||||
/// <summary>
|
||||
/// 备注(报废,打磨,抛光)
|
||||
/// 备注(抛光,打磨,报废)
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "remark")]
|
||||
public string Remark { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 备注(报废1,打磨2,抛光3)
|
||||
/// 备注(抛光1,打磨2,报废3)
|
||||
///</summary>
|
||||
[SugarColumn(ColumnName = "remark2")]
|
||||
public int Remark2 { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 油漆-缩孔
|
||||
///</summary>
|
||||
|
||||
209
ZR.Service/mes/BI/carouselBoard/CarouselBoardService.cs
Normal file
209
ZR.Service/mes/BI/carouselBoard/CarouselBoardService.cs
Normal file
@@ -0,0 +1,209 @@
|
||||
using Aliyun.OSS;
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using ZR.Model.mes.carouselBoard;
|
||||
using ZR.Model.mes.echarts;
|
||||
using ZR.Model.MES.pro;
|
||||
using ZR.Model.MES.qc;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Service.MES.carouselBoard.IService;
|
||||
using ZR.Service.MES.echarts.IService;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Model.dc;
|
||||
|
||||
namespace ZR.Service.MES.carouselBoard
|
||||
{
|
||||
[AppService(ServiceType = typeof(ICarouselBoardService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class CarouselBoardService : BaseService<EchartsOptions>, ICarouselBoardService
|
||||
{
|
||||
public List<BlankInventoryCarouseDto> GetBlankInventoryCarouselBoardData(CarouselBoardQuery query)
|
||||
{
|
||||
// 构建查询条件
|
||||
var predicate = Expressionable
|
||||
.Create<WmBlankInventory>()
|
||||
.And(it => it.Type == 1)
|
||||
.ToExpression();
|
||||
|
||||
// 获取所有符合条件的毛坯库存记录,并按更新时间降序排列
|
||||
var inventoryList = Context.Queryable<WmBlankInventory>()
|
||||
.Where(predicate)
|
||||
.OrderByDescending(it => it.UpdatedTime)
|
||||
.ToList();
|
||||
|
||||
// 去重:获取所有唯一的毛坯号列表
|
||||
var uniqueBlankNums = inventoryList
|
||||
.GroupBy(it => it.BlankNum)
|
||||
.Select(group => group.First())
|
||||
.ToList();
|
||||
|
||||
// 构建返回结果
|
||||
var response = new List<BlankInventoryCarouseDto>();
|
||||
foreach (var inventory in uniqueBlankNums)
|
||||
{
|
||||
var dto = new BlankInventoryCarouseDto
|
||||
{
|
||||
Id = inventory.Id, // 主键
|
||||
FkPaintId = inventory.FkPaintId, // 油漆id
|
||||
BlankNum = inventory.BlankNum, // 毛坯号
|
||||
Quantity = inventory.Quantity, // 库存数量
|
||||
MaxNum = inventory.MaxNum, // 最大库存
|
||||
MinNum = inventory.MinNum, // 最小库存
|
||||
WarnNum = inventory.WarnNum, // 预警库存
|
||||
Type = inventory.Type, // 类别
|
||||
Status = inventory.Status, // 状态
|
||||
Remark = inventory.Remark // 备注
|
||||
};
|
||||
|
||||
// 直接查询当前毛坯号对应的物料信息(不使用字典缓存)
|
||||
var material = Context.Queryable<WmMaterial>()
|
||||
.Where(m => m.BlankNum == inventory.BlankNum && m.Type == 2 && m.Status == 1)
|
||||
.First();
|
||||
|
||||
if (material != null)
|
||||
{
|
||||
dto.Description = !string.IsNullOrEmpty(material.Description)
|
||||
? material.Description
|
||||
: material.ProductName;
|
||||
dto.Color = material.Color;
|
||||
dto.Specification = material.Specification;
|
||||
}
|
||||
else
|
||||
{
|
||||
dto.Description = "此毛坯号不在物料清单内!";
|
||||
}
|
||||
|
||||
response.Add(dto);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
public List<DeviceAlarmCarouseDto> GetEquipmentAlarmCarouselBoardData(CarouselBoardQuery query)
|
||||
{
|
||||
List<DeviceAlarmCarouseDto> result = Context.Queryable<DeviceAlarmLog>()
|
||||
.OrderByDescending(it => it.CreateTime)
|
||||
.Select(it => new DeviceAlarmCarouseDto
|
||||
{
|
||||
Id = it.AlarmNo,
|
||||
AlarmType = it.AlarmCircuit,
|
||||
AlarmContent = it.MessageText,
|
||||
AlarmTime = it.AlarmTime,
|
||||
HandleStatus = it.Status
|
||||
})
|
||||
.ToList();
|
||||
return result;
|
||||
}
|
||||
|
||||
public DeviceLiveCarouseDto GetEquipmentLiveCarouselBoardData(CarouselBoardQuery query)
|
||||
{
|
||||
DeviceLiveCarouseDto result = Context.Queryable<DeviceUploadData>()
|
||||
.OrderByDescending(it => it.CollectionTime)
|
||||
.Select(it => new DeviceLiveCarouseDto
|
||||
{
|
||||
PrimerCycleTemperature = it.Value01,
|
||||
PrimerCycleHumidity = it.Value02,
|
||||
ColorCycleTemperature = it.Value03,
|
||||
ColorCycleHumidity = it.Value04,
|
||||
ClearCycleTemperature = it.Value05,
|
||||
ClearCycleHumidity = it.Value06,
|
||||
PureWaterConductivity = it.Value07,
|
||||
MoistureDryingTemperature = it.Value08,
|
||||
ClearDryingTemperature = it.Value09
|
||||
})
|
||||
.First();
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<QualityStatisticsCarouseDto> GetQualityStatisticsCarouselBoardData(CarouselBoardQuery query)
|
||||
{
|
||||
// 获取今日日期
|
||||
DateTime today = DateTime.Today;
|
||||
DateTime tomorrow = today.AddDays(1);
|
||||
|
||||
List<QualityStatisticsCarouseDto> qualityStatistics = Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(it => it.Remark2 == 1) // 只获取有效的记录
|
||||
.Where(it => it.StartTime >= today && it.StartTime < tomorrow) // 筛选今日内的数据
|
||||
.Select(it => new QualityStatisticsCarouseDto
|
||||
{
|
||||
Id = it.Id, // id
|
||||
WorkorderId = it.WorkorderId, // 工单号
|
||||
FinishedPartNumber = it.FinishedPartNumber, // 零件号
|
||||
ProductDescription = it.ProductDescription, // 描述
|
||||
Color = it.Color, // 颜色
|
||||
RequireNumber = it.RequireNumber, // 生产投入数
|
||||
Team = it.Team, // 班次
|
||||
QualifiedNumber = it.QualifiedNumber, // 合格数
|
||||
QualifiedRate = it.QualifiedRate, // 合格率
|
||||
PaoguangTotal = it.PaoguangTotal, // 抛光总数
|
||||
DamoTotal = it.DamoTotal, // 打磨总数
|
||||
BaofeiTotal = it.BaofeiTotal, // 报废总数
|
||||
StartTime = it.StartTime,
|
||||
EndTime = it.EndTime,
|
||||
})
|
||||
.ToList();
|
||||
return qualityStatistics;
|
||||
}
|
||||
|
||||
public List<WorkOrderCarouseDto> GetWorkOrderCarouselBoardData(CarouselBoardQuery query)
|
||||
{
|
||||
// 获取当前日期信息
|
||||
DateTime now = DateTime.Now;
|
||||
int currentYear = now.Year;
|
||||
|
||||
// 计算当前是本年的第几周(周一为一周的开始)
|
||||
int currentWeek = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(
|
||||
now,
|
||||
CalendarWeekRule.FirstFourDayWeek,
|
||||
DayOfWeek.Monday
|
||||
);
|
||||
|
||||
// 计算当前是星期几(1-7,周一=1,周日=7)
|
||||
int currentDay = (int)now.DayOfWeek;
|
||||
if (currentDay == 0) // 如果是周日
|
||||
{
|
||||
currentDay = 7;
|
||||
}
|
||||
|
||||
List<WorkOrderCarouseDto> workorders = Context
|
||||
.Queryable<ProWorkorder_v2>()
|
||||
.Where(it => it.Remark3 == "是") // 只获取有效的工单
|
||||
.Where(it => it.Status == 1) // 只获取状态为1的工单
|
||||
.Where(it => it.Year == currentYear) // 筛选当前年份
|
||||
.Where(it => it.Week == currentWeek) // 筛选当前周
|
||||
.Where(it => it.Date == currentDay) // 筛选当前日
|
||||
.OrderBy(it => it.Sort) // 按序号排序
|
||||
.Select(it => new WorkOrderCarouseDto
|
||||
{
|
||||
Id = it.Id, // 工单号
|
||||
BlankNumber = it.BlankNumber, // 毛坯号
|
||||
FinishedPartNumber = it.FinishedPartNumber, // 成品零件号
|
||||
ProductDescription = it.ProductDescription, // 产品描述
|
||||
Colour = it.Colour, // 颜色
|
||||
Specifications = it.Specifications, // 规格
|
||||
CodeNumber = it.CodeNumber, // 编码号
|
||||
VehicleNumber = it.VehicleNumber, // 车数
|
||||
PreviousNumber = it.PreviousNumber, // 上件数
|
||||
CylinderNumber = it.CylinderNumber, // 双组号缸号
|
||||
Remark1 = it.Remark1, // 备注1
|
||||
Remark2 = it.Remark2, // 备注2
|
||||
Remark3 = it.Remark3, // 备注3
|
||||
Remark4 = it.Remark4, // 备注4
|
||||
Sort = it.Sort, // 序号
|
||||
ClientWorkorder = it.ClientWorkorder, // 客户工单号
|
||||
Status = it.Status, // 状态
|
||||
Year = it.Year, // 年
|
||||
Week = it.Week, // 周
|
||||
Date = it.Date // 日
|
||||
})
|
||||
.ToList();
|
||||
|
||||
return workorders;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using ZR.Model.mes.carouselBoard;
|
||||
|
||||
namespace ZR.Service.MES.carouselBoard.IService
|
||||
{
|
||||
public interface ICarouselBoardService
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取质量大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<QualityStatisticsCarouseDto> GetQualityStatisticsCarouselBoardData(CarouselBoardQuery query);
|
||||
|
||||
/// <summary>
|
||||
/// 获取生产大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<WorkOrderCarouseDto> GetWorkOrderCarouselBoardData(CarouselBoardQuery query);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取毛坯大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<BlankInventoryCarouseDto> GetBlankInventoryCarouselBoardData(CarouselBoardQuery query);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取设备报警信息大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<DeviceAlarmCarouseDto> GetEquipmentAlarmCarouselBoardData(CarouselBoardQuery query);
|
||||
|
||||
/// <summary>
|
||||
/// 获取设备实时参数信息大屏轮播数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
DeviceLiveCarouseDto GetEquipmentLiveCarouselBoardData(CarouselBoardQuery query);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user