using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Furion.JsonSerialization;
using iWare.Wms.Core;
using iWare.Wms.Core.Util;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Internal;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Web;
namespace iWare.Wms.Application
{
///
/// 质量数据查询服务
///
[ApiDescriptionSettings("数据查询服务", Name = "QualityDataInfo", Order = 100)]
[Route("api/[Controller]")]
public class QualityDataInfoService : IQualityDataInfoService, IDynamicApiController, ITransient
{
private readonly IRepository _qualityDataInfoRep;
private readonly IRepository _equipmentBaseInfoRep;
private readonly IRepository _sysDictTypeRep;
private readonly IRepository _sysDictDataRep;
private readonly IRepository _accessInterfaceLogRep;
///
/// 质量数据查询构造
///
///
///
///
///
public QualityDataInfoService(
IRepository qualityDataInfoRep,
IRepository equipmentBaseInfoRep,
IRepository sysDictTypeRep,
IRepository sysDictDataRep,
IRepository accessInterfaceLogRep)
{
_qualityDataInfoRep = qualityDataInfoRep;
_equipmentBaseInfoRep = equipmentBaseInfoRep;
_sysDictTypeRep = sysDictTypeRep;
_sysDictDataRep = sysDictDataRep;
_sysDictDataRep = sysDictDataRep;
_accessInterfaceLogRep = accessInterfaceLogRep;
}
///
/// 根据质量ID获取SPC质量信息
///
///
///
[HttpGet("GetQualityInfoSPCForID")]
public async Task GetQualityInfoSPCForID([FromQuery] QualityDataInfoSearch2 input)
{
var interfaceLog = _accessInterfaceLogRep.DetachedEntities.Where(o => o.Id == input.QualityDataInfoID).FirstOrDefault();
if (interfaceLog == null || interfaceLog.Id < 1)
{//没有查询到
throw Oops.Oh($"当前工件{input.WorkPieceID ?? ""}没有SPC反馈信息!");
}
var output = JsonConvert.DeserializeObject(interfaceLog.ParaJSON);
return output;
}
///
/// 根据质量ID获取质量信息
///
///
///
[HttpGet("GetQualityInfoForID")]
public async Task GetQualityInfoForID([FromQuery] QualityDataInfoSearch2 input)
{
QualityDataInfoOutput qualityDataInfo = new QualityDataInfoOutput();
if (input == null || string.IsNullOrEmpty(input.OperationType))
{
throw Oops.Oh("传参异常!");
}
if (input.OperationType.Equals("SPC"))
{
}
else
{
qualityDataInfo = await _qualityDataInfoRep.DetachedEntities
.Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
//.Join(_sysDictDataRep.DetachedEntities, e => e.a.QualityState.ToString(), f => f.Code, (e, f) => new { e, f })
//.Join(_sysDictTypeRep.DetachedEntities, g => g.f.TypeId, h => h.Id, (f, g) => new { f, g })
//.Where(x => (x.g.Code.Equals("quality_state")))
.Where(input.WorkPieceID != null, w => w.a.WorkPieceID.Equals(input.WorkPieceID))
.Select(m => new QualityDataInfoOutput
{
Id = m.a.Id,
WorkPieceID = m.a.WorkPieceID,
EquipmentName = m.b.EquipmentName,
WorkingProcedure = m.a.WorkingProcedure,
QualityState = m.a.QualityState,
//QualityStateName = m.f.f.Value,
QualityStateUpdateMode = m.a.QualityStateUpdateMode,
QualityStateUpdateUser = m.a.QualityStateUpdateUser,
QualityReceiveTime = m.a.QualityReceiveTime,
OfflineTime = m.a.OfflineTime,
QualityOP10To1 = m.a.QualityOP10To1,
QualityOP40To1 = m.a.QualityOP40To1,
QualityOP20To1 = m.a.QualityOP20To1,
QualityOP30To1 = m.a.QualityOP30To1,
QualityOP30To2 = m.a.QualityOP30To2,
QualityOP30To3 = m.a.QualityOP30To3,
QualityOP30To4 = m.a.QualityOP30To4,
QualityOP30To5 = m.a.QualityOP30To5,
QualityOP30To6 = m.a.QualityOP30To6,
QualityOP30To7 = m.a.QualityOP30To7,
QualityOP30To8 = m.a.QualityOP30To8,
QualityOP30To9 = m.a.QualityOP30To9,
QualityOP30To10 = m.a.QualityOP30To10,
QualityOP30To11 = m.a.QualityOP30To11,
QualityOP35To1 = m.a.QualityOP35To1,
QualityOP35To2 = m.a.QualityOP35To2,
QualityOP60To1 = m.a.QualityOP60To1,
QualityOP60To2 = m.a.QualityOP60To2,
QualityOP70To1 = m.a.QualityOP70To1,
QualityOP70To2 = m.a.QualityOP70To2,
QualityOP70To3 = m.a.QualityOP70To3,
QualityOP80To1 = m.a.QualityOP80To1,
QualityOP80To2 = m.a.QualityOP80To2,
QualityOP80To3 = m.a.QualityOP80To3,
QualityOP80To4 = m.a.QualityOP80To4,
QualityOP80To5 = m.a.QualityOP80To5,
QualityOP80To6 = m.a.QualityOP80To6,
QualityOP80To7 = m.a.QualityOP80To7,
QualityOP80To8 = m.a.QualityOP80To8,
QualityOP80To9 = m.a.QualityOP80To9,
QualityOP80To10 = m.a.QualityOP80To10,
//新增OP80的一些质量数据 【Editby shaocx,2024 - 06 - 13】
QualityOP80_Houdu = m.a.QualityOP80_Houdu,
QualityOP80_ZXJ = m.a.QualityOP80_ZXJ,
QualityOP80_DTKYZD = m.a.QualityOP80_DTKYZD,
QualityOP80_XTSMYD = m.a.QualityOP80_XTSMYD,
QualityOP80_XTXMYD = m.a.QualityOP80_XTXMYD,
QualityOP80_D_TKZJ = m.a.QualityOP80_D_TKZJ,
QualityOP80_D_S_X = m.a.QualityOP80_D_S_X,
QualityOP80_D_S_Y = m.a.QualityOP80_D_S_Y,
QualityOP80_D_X_X = m.a.QualityOP80_D_X_X,
QualityOP80_D_X_Y = m.a.QualityOP80_D_X_Y,
QualityOP80_X_TKZJ = m.a.QualityOP80_X_TKZJ,
QualityOP80_X_S_X = m.a.QualityOP80_X_S_X,
QualityOP80_X_S_Y = m.a.QualityOP80_X_S_Y,
QualityOP80_X_X_X = m.a.QualityOP80_X_X_X,
QualityOP80_X_X_Y = m.a.QualityOP80_X_X_Y,
Remarks = m.a.Remarks,
})
//.OrderBy(PageInputOrder.OrderBuilder(input))
.ProjectToType()
.FirstOrDefaultAsync();
}
return qualityDataInfo;
}
///
/// 分页查询质量数据查询
///
///
///
[HttpGet("page")]
public async Task> Page([FromQuery] QualityDataInfoSearch input)
{
if (!input.StartTime.HasValue || !input.EndTime.HasValue || input.StartTime > input.EndTime)
{
throw Oops.Oh("传参异常:日期范围必须传值!");
}
if (string.IsNullOrEmpty(input.EquipmentID))
{
throw Oops.Oh("传参异常:设备编号必须传参!");
}
//if (!string.IsNullOrEmpty(input.EquipmentID) && input.EquipmentID.Equals("EOP10") && string.IsNullOrEmpty(input.WorkingProcedure))
//{
// throw Oops.Oh("传参异常:工序必须传值!");
//}
var qualityDataInfos = await _qualityDataInfoRep.DetachedEntities
.Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
//.Where(o => o.a.CreatedTime.Value.Date >= input.StartTime.Value)
//.Where(o => o.a.UpdatedTime.Value.Date <= input.EndTime.Value)
.Where(!string.IsNullOrEmpty(input.WorkPieceID), w => w.a.WorkPieceID.Contains(input.WorkPieceID))
.Where(input.EquipmentID.Equals("EOP10") && string.IsNullOrEmpty(input.WorkingProcedure), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value
&& o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)) || (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
.Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP10"), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)))
.Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP40"), o => (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
.Where(input.EquipmentID.Equals("EOP20"), o => o.a.OP20QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP20QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP20QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP20QualityState))
.Where(input.EquipmentID.Equals("EOP30"), o => o.a.OP30QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP30QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP30QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP30QualityState))
.Where(input.EquipmentID.Equals("EOP35"), o => o.a.OP35QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP35QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP35QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP35QualityState))
.Where(input.EquipmentID.Equals("EOP60"), o => o.a.OP60QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP60QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP60QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP60QualityState))
.Where(input.EquipmentID.Equals("EOP80"), o => o.a.OP80QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP80QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP80QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP80QualityState))
.Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID))
.Select(m => new QualityDataInfoOutput
{
Id = m.a.Id,
WorkPieceID = m.a.WorkPieceID,
EquipmentID = input.EquipmentID,
//EquipmentName = m.b.EquipmentName,
WorkingProcedure = input.WorkingProcedure,
QualityState = m.a.QualityState,
//QualityStateName = m.a.f.f.Value,
QualityStateUpdateMode = m.a.QualityStateUpdateMode,
QualityStateUpdateUser = m.a.QualityStateUpdateUser,
QualityReceiveTime = m.a.QualityReceiveTime,
OfflineTime = m.a.OfflineTime,
QualityOP10To1 = m.a.QualityOP10To1,
QualityOP40To1 = m.a.QualityOP40To1,
QualityOP20To1 = m.a.QualityOP20To1,
QualityOP30To1 = m.a.QualityOP30To1,
QualityOP30To2 = m.a.QualityOP30To2,
QualityOP30To3 = m.a.QualityOP30To3,
QualityOP30To4 = m.a.QualityOP30To4,
QualityOP30To5 = m.a.QualityOP30To5,
QualityOP30To6 = m.a.QualityOP30To6,
QualityOP30To7 = m.a.QualityOP30To7,
QualityOP30To8 = m.a.QualityOP30To8,
QualityOP30To9 = m.a.QualityOP30To9,
QualityOP30To10 = m.a.QualityOP30To10,
QualityOP30To11 = m.a.QualityOP30To11,
QualityOP35To1 = m.a.QualityOP35To1,
QualityOP35To2 = m.a.QualityOP35To2,
QualityOP60To1 = m.a.QualityOP60To1,
QualityOP60To2 = m.a.QualityOP60To2,
QualityOP70To1 = m.a.QualityOP70To1,
QualityOP70To2 = m.a.QualityOP70To2,
QualityOP70To3 = m.a.QualityOP70To3,
QualityOP80To1 = m.a.QualityOP80To1,
QualityOP80To2 = m.a.QualityOP80To2,
QualityOP80To3 = m.a.QualityOP80To3,
QualityOP80To4 = m.a.QualityOP80To4,
QualityOP80To5 = m.a.QualityOP80To5,
QualityOP80To6 = m.a.QualityOP80To6,
QualityOP80To7 = m.a.QualityOP80To7,
QualityOP80To8 = m.a.QualityOP80To8,
QualityOP80To9 = m.a.QualityOP80To9,
QualityOP80To10 = m.a.QualityOP80To10,
OP10QualityReceiveTime = m.a.OP10QualityReceiveTime,
OP20QualityReceiveTime = m.a.OP20QualityReceiveTime,
OP30QualityReceiveTime = m.a.OP30QualityReceiveTime,
OP35QualityReceiveTime = m.a.OP35QualityReceiveTime,
OP40QualityReceiveTime = m.a.OP40QualityReceiveTime,
OP60QualityReceiveTime = m.a.OP60QualityReceiveTime,
OP80QualityReceiveTime = m.a.OP80QualityReceiveTime,
OP10QualityState = m.a.OP10QualityState,
OP20QualityState = m.a.OP20QualityState,
OP30QualityState = m.a.OP30QualityState,
OP40QualityState = m.a.OP40QualityState,
OP35QualityState = m.a.OP35QualityState,
OP60QualityState = m.a.OP60QualityState,
OP80QualityState = m.a.OP80QualityState,
OP30QualityStateCH3 = m.a.OP30QualityStateCH3,
OP30QualityStateCH4 = m.a.OP30QualityStateCH4,
OP30QualityStateCH5 = m.a.OP30QualityStateCH5,
OP30QualityStateCH6 = m.a.OP30QualityStateCH6,
//新增OP80的一些质量数据 【Editby shaocx,2024 - 06 - 13】
QualityOP80_Houdu = m.a.QualityOP80_Houdu,
QualityOP80_ZXJ = m.a.QualityOP80_ZXJ,
QualityOP80_DTKYZD = m.a.QualityOP80_DTKYZD,
QualityOP80_XTSMYD = m.a.QualityOP80_XTSMYD,
QualityOP80_XTXMYD = m.a.QualityOP80_XTXMYD,
QualityOP80_D_TKZJ = m.a.QualityOP80_D_TKZJ,
QualityOP80_D_S_X = m.a.QualityOP80_D_S_X,
QualityOP80_D_S_Y = m.a.QualityOP80_D_S_Y,
QualityOP80_D_X_X = m.a.QualityOP80_D_X_X,
QualityOP80_D_X_Y = m.a.QualityOP80_D_X_Y,
QualityOP80_X_TKZJ = m.a.QualityOP80_X_TKZJ,
QualityOP80_X_S_X = m.a.QualityOP80_X_S_X,
QualityOP80_X_S_Y = m.a.QualityOP80_X_S_Y,
QualityOP80_X_X_X = m.a.QualityOP80_X_X_X,
QualityOP80_X_X_Y = m.a.QualityOP80_X_X_Y,
Remarks = m.a.Remarks,
UpdateTime = m.a.UpdatedTime,
})
.ProjectToType().ToListAsync();
if (input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP10"))
{
qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP10QualityReceiveTime).ToList();
}
else if (input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP40"))
{
qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP40QualityReceiveTime).ToList();
}
else if (input.EquipmentID.Equals("EOP20"))
{
qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP20QualityReceiveTime).ToList();
}
else if (input.EquipmentID.Equals("EOP30"))
{
qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP30QualityReceiveTime).ToList();
}
else if (input.EquipmentID.Equals("EOP60"))
{
qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP60QualityReceiveTime).ToList();
}
else if (input.EquipmentID.Equals("EOP80"))
{
qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP80QualityReceiveTime).ToList();
}
var retData = qualityDataInfos.ToADPagedList(input.PageNo, input.PageSize);
return retData;
}
///
/// 根据质量数据导出Excel
///
/// 质量数据传入信息
/// 导出的Excel文件
[HttpGet("toExcel")]
public async Task ToExcelAsync([FromQuery] QualityDataInfoSearch input)
{
if (!input.StartTime.HasValue || !input.EndTime.HasValue || input.StartTime > input.EndTime)
{
throw Oops.Oh("传参异常:日期范围必须传值!");
}
if (string.IsNullOrEmpty(input.EquipmentID))
{
throw Oops.Oh("传参异常:设备编号必须传参!");
}
var qualityDataInfos = await _qualityDataInfoRep.DetachedEntities
.Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
//.Where(o => o.a.CreatedTime.Value.Date >= input.StartTime.Value)
//.Where(o => o.a.UpdatedTime.Value.Date <= input.EndTime.Value)
.Where(!string.IsNullOrEmpty(input.WorkPieceID), w => w.a.WorkPieceID.Contains(input.WorkPieceID))
.Where(input.EquipmentID.Equals("EOP10") && string.IsNullOrEmpty(input.WorkingProcedure), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value
&& o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)) || (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
.Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP10"), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)))
.Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP40"), o => (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
.Where(input.EquipmentID.Equals("EOP20"), o => o.a.OP20QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP20QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP20QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP20QualityState))
.Where(input.EquipmentID.Equals("EOP30"), o => o.a.OP30QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP30QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP30QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP30QualityState))
.Where(input.EquipmentID.Equals("EOP35"), o => o.a.OP35QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP35QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP35QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP35QualityState))
.Where(input.EquipmentID.Equals("EOP60"), o => o.a.OP60QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP60QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP60QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP60QualityState))
.Where(input.EquipmentID.Equals("EOP80"), o => o.a.OP80QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP80QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP80QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP80QualityState))
.Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID))
.Select(m => new QualityDataInfoOutput
{
Id = m.a.Id,
WorkPieceID = m.a.WorkPieceID,
EquipmentID = input.EquipmentID,
//EquipmentName = m.b.EquipmentName,
WorkingProcedure = input.WorkingProcedure,
QualityState = m.a.QualityState,
//QualityStateName = m.a.f.f.Value,
QualityStateUpdateMode = m.a.QualityStateUpdateMode,
QualityStateUpdateUser = m.a.QualityStateUpdateUser,
QualityReceiveTime = m.a.QualityReceiveTime,
OfflineTime = m.a.OfflineTime,
QualityOP10To1 = m.a.QualityOP10To1,
QualityOP40To1 = m.a.QualityOP40To1,
QualityOP20To1 = m.a.QualityOP20To1,
QualityOP30To1 = m.a.QualityOP30To1,
QualityOP30To2 = m.a.QualityOP30To2,
QualityOP30To3 = m.a.QualityOP30To3,
QualityOP30To4 = m.a.QualityOP30To4,
QualityOP30To5 = m.a.QualityOP30To5,
QualityOP30To6 = m.a.QualityOP30To6,
QualityOP30To7 = m.a.QualityOP30To7,
QualityOP30To8 = m.a.QualityOP30To8,
QualityOP30To9 = m.a.QualityOP30To9,
QualityOP30To10 = m.a.QualityOP30To10,
QualityOP30To11 = m.a.QualityOP30To11,
QualityOP35To1 = m.a.QualityOP35To1,
QualityOP35To2 = m.a.QualityOP35To2,
QualityOP60To1 = m.a.QualityOP60To1,
QualityOP60To2 = m.a.QualityOP60To2,
QualityOP70To1 = m.a.QualityOP70To1,
QualityOP70To2 = m.a.QualityOP70To2,
QualityOP70To3 = m.a.QualityOP70To3,
QualityOP80To1 = m.a.QualityOP80To1,
QualityOP80To2 = m.a.QualityOP80To2,
QualityOP80To3 = m.a.QualityOP80To3,
QualityOP80To4 = m.a.QualityOP80To4,
QualityOP80To5 = m.a.QualityOP80To5,
QualityOP80To6 = m.a.QualityOP80To6,
QualityOP80To7 = m.a.QualityOP80To7,
QualityOP80To8 = m.a.QualityOP80To8,
QualityOP80To9 = m.a.QualityOP80To9,
QualityOP80To10 = m.a.QualityOP80To10,
OP10QualityReceiveTime = m.a.OP10QualityReceiveTime,
OP20QualityReceiveTime = m.a.OP20QualityReceiveTime,
OP30QualityReceiveTime = m.a.OP30QualityReceiveTime,
OP35QualityReceiveTime = m.a.OP35QualityReceiveTime,
OP40QualityReceiveTime = m.a.OP40QualityReceiveTime,
OP60QualityReceiveTime = m.a.OP60QualityReceiveTime,
OP80QualityReceiveTime = m.a.OP80QualityReceiveTime,
OP10QualityState = m.a.OP10QualityState,
OP20QualityState = m.a.OP20QualityState,
OP30QualityState = m.a.OP30QualityState,
OP40QualityState = m.a.OP40QualityState,
OP35QualityState = m.a.OP35QualityState,
OP60QualityState = m.a.OP60QualityState,
OP80QualityState = m.a.OP80QualityState,
//新增OP80的一些质量数据 【Editby shaocx,2024 - 06 - 13】
QualityOP80_Houdu = m.a.QualityOP80_Houdu,
QualityOP80_ZXJ = m.a.QualityOP80_ZXJ,
QualityOP80_DTKYZD = m.a.QualityOP80_DTKYZD,
QualityOP80_XTSMYD = m.a.QualityOP80_XTSMYD,
QualityOP80_XTXMYD = m.a.QualityOP80_XTXMYD,
QualityOP80_D_TKZJ = m.a.QualityOP80_D_TKZJ,
QualityOP80_D_S_X = m.a.QualityOP80_D_S_X,
QualityOP80_D_S_Y = m.a.QualityOP80_D_S_Y,
QualityOP80_D_X_X = m.a.QualityOP80_D_X_X,
QualityOP80_D_X_Y = m.a.QualityOP80_D_X_Y,
QualityOP80_X_TKZJ = m.a.QualityOP80_X_TKZJ,
QualityOP80_X_S_X = m.a.QualityOP80_X_S_X,
QualityOP80_X_S_Y = m.a.QualityOP80_X_S_Y,
QualityOP80_X_X_X = m.a.QualityOP80_X_X_X,
QualityOP80_X_X_Y = m.a.QualityOP80_X_X_Y,
Remarks = m.a.Remarks,
UpdateTime = m.a.UpdatedTime,
})
.ProjectToType()
.OrderByDescending(o => o.UpdateTime)
.ToListAsync()
;
MemoryStream ms = new();
List headers = new List();
List> data = new List>();
string sheetName = "";
switch (input.EquipmentID)
{
case "EOP10":
//var lstOP10 = EntityPropHelper.Mapper(qualityDataInfos);
var lstOP10 = qualityDataInfos.Adapt>();
DataConvertUtil.ToExcelData(lstOP10, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
case "EOP20":
var lstOP20 = qualityDataInfos.Adapt>();
DataConvertUtil.ToExcelData(lstOP20, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
case "EOP30":
var lstOP30 = qualityDataInfos.Adapt>();
DataConvertUtil.ToExcelData(lstOP30, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
case "EOP35":
var lstOP35 = qualityDataInfos.Adapt>();
DataConvertUtil.ToExcelData(lstOP35, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
case "EOP40":
break;
case "EOP60":
var lstOP60 = qualityDataInfos.Adapt>();
DataConvertUtil.ToExcelData(lstOP60, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
case "EOP70":
break;
case "EOP80":
var lstOP80 = qualityDataInfos.Adapt>();
DataConvertUtil.ToExcelData(lstOP80, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
default:
DataConvertUtil.ToExcelData(qualityDataInfos, _sysDictTypeRep, _sysDictDataRep, out headers,
out data, out sheetName);
break;
}
ExcelUtil.ToExcel(headers, data, sheetName, ms);
ms.Position = 0;
var fileName = HttpUtility.UrlEncode($"{sheetName}[{DateTimeOffset.Now:yyyy-MM-dd}].xlsx", Encoding.GetEncoding("UTF-8"));
return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName };
}
}
}