schangxiang@126.com
2024-06-11 2954a2dd4529679ff30c1fd08870895c29d507f2
iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/QualityDataInfoService.cs
@@ -26,7 +26,7 @@
    [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;
@@ -40,7 +40,7 @@
        /// <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,
@@ -62,9 +62,9 @@
        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;
@@ -76,9 +76,9 @@
        /// <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("传参异常!");
            }
@@ -143,7 +143,7 @@
               .ProjectToType<QualityDataInfoOutput>()
               .FirstOrDefaultAsync();
            }
            return qualityDataInfo;
        }
@@ -155,7 +155,7 @@
        [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("传参异常:日期范围必须传值!");
            }
@@ -170,11 +170,11 @@
            //}
            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(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), 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))
@@ -231,7 +231,7 @@
                   OP20QualityReceiveTime = m.a.OP20QualityReceiveTime,
                   OP30QualityReceiveTime = m.a.OP30QualityReceiveTime,
                   OP35QualityReceiveTime = m.a.OP35QualityReceiveTime,
                   OP40QualityReceiveTime=  m.a.OP40QualityReceiveTime,
                   OP40QualityReceiveTime = m.a.OP40QualityReceiveTime,
                   OP60QualityReceiveTime = m.a.OP60QualityReceiveTime,
                   OP80QualityReceiveTime = m.a.OP80QualityReceiveTime,
                   OP10QualityState = m.a.OP10QualityState,
@@ -241,6 +241,12 @@
                   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,
                   Remarks = m.a.Remarks,
                   UpdateTime = m.a.UpdatedTime,
               })
@@ -250,8 +256,8 @@
            return qualityDataInfos;
        }
        /// <summary>
        /// 根据质量数据导出Excel
        /// </summary>
@@ -283,7 +289,7 @@
               .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,
@@ -407,6 +413,6 @@
            var fileName = HttpUtility.UrlEncode($"{sheetName}[{DateTimeOffset.Now:yyyy-MM-dd}].xlsx", Encoding.GetEncoding("UTF-8"));
            return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName };
        }
    }
}