iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/Dto/EquipmentBaseInfoInput.cs
@@ -185,7 +185,20 @@ /// 清洗液更换时间 /// </summary> public virtual DateTime? Detergentchangetime { get; set; } /// <summary> /// 清洗液添加时间 【Editby shaocx,2024-06-11】 /// </summary> [Comment("清洗液添加时间")] public DateTime? DetergentAddtime { get; set; } /// <summary> /// 切削液添加时间 【Editby shaocx,2024-06-11】 /// </summary> [Comment("切削液添加时间")] public DateTime? CuttingFluidAddTime { get; set; } /// <summary> /// 清洗液更换预警阈值 /// </summary> iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/Dto/EquipmentBaseInfoOutput.cs
@@ -55,7 +55,20 @@ /// 清洗液更换时间 /// </summary> public DateTime? Detergentchangetime { get; set; } /// <summary> /// 清洗液添加时间 【Editby shaocx,2024-06-11】 /// </summary> [Comment("清洗液添加时间")] public DateTime? DetergentAddtime { get; set; } /// <summary> /// 切削液添加时间 【Editby shaocx,2024-06-11】 /// </summary> [Comment("切削液添加时间")] public DateTime? CuttingFluidAddTime { get; set; } /// <summary> /// 清洗液更换预警阈值 /// </summary> iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs
@@ -110,6 +110,8 @@ Remarks = s.Remarks, CreatedTime = s.CreatedTime, TactTime = s.TactTime, DetergentAddtime = s.DetergentAddtime, CuttingFluidAddTime = s.CuttingFluidAddTime, }) .Distinct() .OrderBy(PageInputOrder.OrderBuilder<EquipmentBaseInfoSearch>(input)) @@ -295,6 +297,32 @@ }; await _equipmentbaseinfologRep.InsertAsync(log); } if (isExistObj.DetergentAddtime?.ToString("yyyy-MM-dd") != equipmentBaseInfo.DetergentAddtime?.ToString("yyyy-MM-dd")) { //新增维护日志 var log = new Equipmentbaseinfolog() { EquipmentBaseInfoId = equipmentBaseInfo.Id, EquipmentID = equipmentBaseInfo.EquipmentId, OperatorType = EquipmentbaseinfoOperatorTypeEnum.清洗液添加, OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.清洗液添加).ToString(), OperatorContent = "清洗液添加时间:" + equipmentBaseInfo.DetergentAddtime?.ToString("yyyy-MM-dd"), }; await _equipmentbaseinfologRep.InsertAsync(log); } if (isExistObj.CuttingFluidAddTime?.ToString("yyyy-MM-dd") != equipmentBaseInfo.CuttingFluidAddTime?.ToString("yyyy-MM-dd")) { //新增维护日志 var log = new Equipmentbaseinfolog() { EquipmentBaseInfoId = equipmentBaseInfo.Id, EquipmentID = equipmentBaseInfo.EquipmentId, OperatorType = EquipmentbaseinfoOperatorTypeEnum.切削液添加, OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.切削液添加).ToString(), OperatorContent = "切削液添加时间:" + equipmentBaseInfo.CuttingFluidAddTime?.ToString("yyyy-MM-dd"), }; await _equipmentbaseinfologRep.InsertAsync(log); } } iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/Dto/QualityDataInfoOutput.cs
@@ -43,7 +43,7 @@ /// 工件号 /// </summary> public string WorkPieceID { get; set; } /// <summary> /// 设备 /// </summary> @@ -53,12 +53,12 @@ /// 设备名称 /// </summary> public string EquipmentName { get; set; } /// <summary> /// 工序 /// </summary> public string WorkingProcedure { get; set; } /// <summary> /// 质量状态 /// </summary> @@ -122,27 +122,27 @@ { get { if(string.IsNullOrEmpty(EquipmentID)) if (string.IsNullOrEmpty(EquipmentID)) { return string.Empty; } string qs = ""; if(EquipmentID.Equals("EOP10")) string qs = ""; if (EquipmentID.Equals("EOP10")) { if (string.IsNullOrEmpty(WorkingProcedure)) { return (string.IsNullOrEmpty(OP10QualityState)|| string.IsNullOrEmpty(OP40QualityState))?(GetQualityStateName(OP10QualityState)+ GetQualityStateName(OP40QualityState)): ((GetQualityStateName(OP10QualityState) +"|"+ GetQualityStateName(OP40QualityState))); return (string.IsNullOrEmpty(OP10QualityState) || string.IsNullOrEmpty(OP40QualityState)) ? (GetQualityStateName(OP10QualityState) + GetQualityStateName(OP40QualityState)) : ((GetQualityStateName(OP10QualityState) + "|" + GetQualityStateName(OP40QualityState))); } if (WorkingProcedure.Equals("OP10")) { qs=OP10QualityState; qs = OP10QualityState; } else { qs = OP40QualityState; } } else if(EquipmentID.Equals("EOP20")) else if (EquipmentID.Equals("EOP20")) { qs = OP20QualityState; } @@ -171,7 +171,7 @@ /// 操作方式 /// </summary> public string QualityStateUpdateMode { get; set; } /// <summary> /// 操作人 /// </summary> @@ -196,7 +196,7 @@ { if (string.IsNullOrEmpty(WorkingProcedure)) { return OP10QualityReceiveTime.ToString()+ ((OP10QualityReceiveTime.HasValue&& OP40QualityReceiveTime.HasValue)?"|":"")+ OP40QualityReceiveTime.ToString(); return OP10QualityReceiveTime.ToString() + ((OP10QualityReceiveTime.HasValue && OP40QualityReceiveTime.HasValue) ? "|" : "") + OP40QualityReceiveTime.ToString(); } if (WorkingProcedure.Equals("OP10")) { @@ -231,7 +231,7 @@ } } private DateTime? m_EndTime=null; private DateTime? m_EndTime = null; /// <summary> /// 下线时间 /// </summary> @@ -239,7 +239,7 @@ { get { if (m_EndTime.HasValue&& m_EndTime.Value.Date==DateTime.Parse("0001-01-01")) if (m_EndTime.HasValue && m_EndTime.Value.Date == DateTime.Parse("0001-01-01")) { return null; } @@ -250,7 +250,7 @@ } set { m_EndTime = value; } } /// <summary> /// 连杆厚度;OP10/OP40 /// </summary> @@ -261,7 +261,7 @@ /// 小头孔直径;OP20/OP60/OP80 /// </summary> public string QualityOP20To1 { get; set; } /// <summary> /// 涨断力矩;OP30 /// </summary> @@ -309,87 +309,87 @@ /// 衬套压装力矩;OP30 /// </summary> public string QualityOP30To6 { get; set; } /// <summary> /// 衬套压装位移;OP30 /// </summary> public string QualityOP30To7 { get; set; } /// <summary> /// 压装力矩;OP35 /// </summary> public string QualityOP35To1 { get; set; } /// <summary> /// Y轴位移;OP35 /// </summary> public string QualityOP35To2 { get; set; } /// <summary> /// 大头孔直径;OP60/OP80 /// </summary> public string QualityOP60To1 { get; set; } /// <summary> /// 校验码结果;OP60 /// </summary> public string QualityOP60To2 { get; set; } /// <summary> /// 清洗温度;OP70 /// </summary> public string QualityOP70To1 { get; set; } /// <summary> /// 清洗压力;OP70 /// </summary> public string QualityOP70To2 { get; set; } /// <summary> /// 出口处工件温度;OP70 /// </summary> public string QualityOP70To3 { get; set; } /// <summary> /// 大头重量;OP80 /// </summary> public string QualityOP80To1 { get; set; } /// <summary> /// 小头重量;OP80 /// </summary> public string QualityOP80To2 { get; set; } /// <summary> /// 总重;OP80 /// </summary> public string QualityOP80To3 { get; set; } /// <summary> /// 弯曲;OP80 /// </summary> public string QualityOP80To4 { get; set; } /// <summary> /// 扭度;OP80 /// </summary> public string QualityOP80To5 { get; set; } /// <summary> /// 大头垂直度;OP80 /// </summary> public string QualityOP80To6 { get; set; } /// <summary> /// 大头孔分组级别;OP80 /// </summary> public string QualityOP80To7 { get; set; } /// <summary> /// 小头孔分组级别;OP80 /// </summary> public string QualityOP80To8 { get; set; } /// <summary> /// 重量组别;OP80 /// </summary> @@ -433,6 +433,40 @@ public string OP30QualityStateCH6 { get; set; } public string OP30QualityStateCH3Name { get { if (string.IsNullOrEmpty(OP30QualityStateCH3)) return string.Empty; return GetQualityStateName(OP30QualityStateCH3.ToString()); } } public string OP30QualityStateCH4Name { get { if (string.IsNullOrEmpty(OP30QualityStateCH4)) return string.Empty; return GetQualityStateName(OP30QualityStateCH4.ToString()); } } public string OP30QualityStateCH5Name { get { if (string.IsNullOrEmpty(OP30QualityStateCH5)) return string.Empty; return GetQualityStateName(OP30QualityStateCH5.ToString()); } } public string OP30QualityStateCH6Name { get { if (string.IsNullOrEmpty(OP30QualityStateCH6)) return string.Empty; return GetQualityStateName(OP30QualityStateCH6.ToString()); } } public string OP30QualityState { get; set; } public string OP35QualityState { get; set; } @@ -446,7 +480,7 @@ /// 备注 /// </summary> public string Remarks { get; set; } /// <summary> /// Id主键 /// </summary> @@ -455,7 +489,7 @@ /// <summary> /// 创建时间 /// </summary> public DateTimeOffset ?CreatedTime { get; set; } public DateTimeOffset? CreatedTime { get; set; } /// <summary> /// 创建时间 /// </summary> @@ -500,7 +534,7 @@ /// 质量状态名称 /// </summary> [Description("质量状态")] public string QualityStateName{ get; set; } public string QualityStateName { get; set; } /// <summary> /// 操作方式 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 }; } } } iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
@@ -1375,6 +1375,16 @@ 清洗液更换时间 </summary> </member> <member name="P:iWare.Wms.Application.EquipmentBaseInfoInput.DetergentAddtime"> <summary> 清洗液添加时间 【Editby shaocx,2024-06-11】 </summary> </member> <member name="P:iWare.Wms.Application.EquipmentBaseInfoInput.CuttingFluidAddTime"> <summary> 切削液添加时间 【Editby shaocx,2024-06-11】 </summary> </member> <member name="P:iWare.Wms.Application.EquipmentBaseInfoInput.DetergentChangeAlertThreshold"> <summary> 清洗液更换预警阈值 @@ -1585,6 +1595,16 @@ 清洗液更换时间 </summary> </member> <member name="P:iWare.Wms.Application.EquipmentBaseInfoOutput.DetergentAddtime"> <summary> 清洗液添加时间 【Editby shaocx,2024-06-11】 </summary> </member> <member name="P:iWare.Wms.Application.EquipmentBaseInfoOutput.CuttingFluidAddTime"> <summary> 切削液添加时间 【Editby shaocx,2024-06-11】 </summary> </member> <member name="P:iWare.Wms.Application.EquipmentBaseInfoOutput.DetergentChangeAlertThreshold"> <summary> 清洗液更换预警阈值 iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/Equipmentbaseinfo.cs
@@ -73,6 +73,12 @@ public string EquipmentManufacturer { get; set; } /// <summary> /// 清洗液添加时间 【Editby shaocx,2024-06-11】 /// </summary> [Comment("清洗液添加时间")] public DateTime? DetergentAddtime { get; set; } /// <summary> /// 清洗液更换时间 /// </summary> [Comment("清洗液更换时间")] @@ -103,6 +109,12 @@ public int KnifeToolChangeAlertThreshold { get; set; } /// <summary> /// 切削液添加时间 【Editby shaocx,2024-06-11】 /// </summary> [Comment("切削液添加时间")] public DateTime? CuttingFluidAddTime { get; set; } /// <summary> /// 切削液更换时间 /// </summary> [Comment("切削液更换时间")] iWara.SCADA.Code/iWare.Wms.EntityFramework.Core/iWare.Wms.EntityFramework.Core.csproj
@@ -7,11 +7,19 @@ </PropertyGroup> <ItemGroup> <None Remove="dbsettings - 本机.Development.json" /> <None Remove="dbsettings - 生产.Development.json" /> <None Remove="dbsettings.Development.json" /> </ItemGroup> <ItemGroup> <Content Include="dbsettings - 生产.Development.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="dbsettings - 本机.Development.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="dbsettings.Development.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content>