| | |
| | | [Route("api/[Controller]")] |
| | | public class QualityDataInfoService : IQualityDataInfoService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<QualityDataInfo,MasterDbContextLocator> _qualityDataInfoRep; |
| | | private readonly IRepository<QualityDataInfo, MasterDbContextLocator> _qualityDataInfoRep; |
| | | private readonly IRepository<EquipmentBaseInfo, MasterDbContextLocator> _equipmentBaseInfoRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | |
| | | /// <param name="sysDictTypeRep"></param> |
| | | /// <param name="sysDictDataRep"></param> |
| | | public QualityDataInfoService( |
| | | IRepository<QualityDataInfo,MasterDbContextLocator> qualityDataInfoRep, |
| | | IRepository<QualityDataInfo, MasterDbContextLocator> qualityDataInfoRep, |
| | | IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep, |
| | | IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep, |
| | | IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep, |
| | |
| | | public async Task<AddQualityDataInfoInputV2> GetQualityInfoSPCForID([FromQuery] QualityDataInfoSearch2 input) |
| | | { |
| | | var interfaceLog = _accessInterfaceLogRep.DetachedEntities.Where(o => o.Id == input.QualityDataInfoID).FirstOrDefault(); |
| | | if(interfaceLog==null|| interfaceLog.Id<1) |
| | | if (interfaceLog == null || interfaceLog.Id < 1) |
| | | {//没有查询到 |
| | | throw Oops.Oh($"当前工件{input.WorkPieceID??""}没有SPC反馈信息!"); |
| | | throw Oops.Oh($"当前工件{input.WorkPieceID ?? ""}没有SPC反馈信息!"); |
| | | } |
| | | var output = JsonConvert.DeserializeObject<AddQualityDataInfoInputV2>(interfaceLog.ParaJSON); |
| | | return output; |
| | |
| | | /// <returns></returns> |
| | | [HttpGet("GetQualityInfoForID")] |
| | | public async Task<QualityDataInfoOutput> GetQualityInfoForID([FromQuery] QualityDataInfoSearch2 input) |
| | | { |
| | | { |
| | | QualityDataInfoOutput qualityDataInfo = new QualityDataInfoOutput(); |
| | | if(input==null|| string.IsNullOrEmpty(input.OperationType)) |
| | | if (input == null || string.IsNullOrEmpty(input.OperationType)) |
| | | { |
| | | throw Oops.Oh("传参异常!"); |
| | | } |
| | |
| | | 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<QualityDataInfoSearch>(input)) |
| | | .ProjectToType<QualityDataInfoOutput>() |
| | | .FirstOrDefaultAsync(); |
| | | } |
| | | |
| | | |
| | | return qualityDataInfo; |
| | | } |
| | | |
| | |
| | | [HttpGet("page")] |
| | | public async Task<PageResult<QualityDataInfoOutput>> Page([FromQuery] QualityDataInfoSearch input) |
| | | { |
| | | if(!input.StartTime.HasValue|| !input.EndTime.HasValue||input.StartTime>input.EndTime) |
| | | if (!input.StartTime.HasValue || !input.EndTime.HasValue || input.StartTime > input.EndTime) |
| | | { |
| | | 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, |
| | | Remarks = m.a.Remarks, |
| | | UpdateTime = m.a.UpdatedTime, |
| | | }) |
| | | .ProjectToType<QualityDataInfoOutput>() |
| | | .OrderByDescending(o => o.UpdateTime) |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return qualityDataInfos; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 根据质量数据导出Excel |
| | | /// </summary> |
| | | /// <param name="input">质量数据传入信息</param> |
| | | /// <returns>导出的Excel文件</returns> |
| | | [HttpGet("toExcel")] |
| | | public async Task<IActionResult> 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("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)) |
| | | .Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID)) |
| | | .Select(m => new QualityDataInfoOutput |
| | | { |
| | | Id = m.a.Id, |
| | |
| | | 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<QualityDataInfoOutput>() |
| | | .OrderByDescending(o => o.UpdateTime) |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return qualityDataInfos; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 根据质量数据导出Excel |
| | | /// </summary> |
| | | /// <param name="input">质量数据传入信息</param> |
| | | /// <returns>导出的Excel文件</returns> |
| | | [HttpGet("toExcel")] |
| | | public async Task<IActionResult> 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, |
| | | }) |
| | |
| | | var fileName = HttpUtility.UrlEncode($"{sheetName}[{DateTimeOffset.Now:yyyy-MM-dd}].xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |