.gitignore
@@ -364,3 +364,4 @@ /iWare.Mdc.Code/iWare.Mdc.Database.Migrations/Migrations/* /iWare.Mdc.Code/iWare.Mdc.Application/applicationsettings.json /DBScript/æ°æ®åºè®¾è®¡/.back_DF22001-䏿±½è¿ææ°é项ç®ï¼SCADAï¼ DBScript/Êý¾Ý¿âÉè¼Æ/DF22001-Ò»ÆûÁ¬¸ËÊý²ÉÏîÄ¿£¨SCADA£©.pdma.json
¶Ô±ÈÐÂÎļþ ÎļþÌ«´ó iWara.SCADA.Code/iWare.Wms.Application/Service/EquipmentBaseInfo/EquipmentBaseInfoService.cs
@@ -22,8 +22,9 @@ [Route("api/[Controller]")] public class EquipmentBaseInfoService : IEquipmentBaseInfoService, IDynamicApiController, ITransient { private readonly IRepository<EquipmentBaseInfo,MasterDbContextLocator> _equipmentBaseInfoRep; private readonly IRepository<V_GetEquipmentAlert, MasterDbContextLocator> _v_GetEquipmentAlertRep; private readonly IRepository<EquipmentBaseInfo, MasterDbContextLocator> _equipmentBaseInfoRep; private readonly IRepository<Equipmentbaseinfolog, MasterDbContextLocator> _equipmentbaseinfologRep; private readonly IRepository<V_GetEquipmentAlert, MasterDbContextLocator> _v_GetEquipmentAlertRep; private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; private readonly IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> _equipmentCurrentMonitorRep; @@ -37,13 +38,15 @@ /// <param name="sysDictDataRep"></param> /// <param name="equipmentCurrentMonitorRep"></param> public EquipmentBaseInfoService( IRepository<EquipmentBaseInfo,MasterDbContextLocator> equipmentBaseInfoRep, IRepository<V_GetEquipmentAlert, MasterDbContextLocator> v_GetEquipmentAlert, IRepository<Equipmentbaseinfolog, MasterDbContextLocator> equipmentbaseinfologRep, IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep, IRepository<V_GetEquipmentAlert, MasterDbContextLocator> v_GetEquipmentAlert, IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep, IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep, IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> equipmentCurrentMonitorRep ) { _equipmentbaseinfologRep = equipmentbaseinfologRep; _equipmentBaseInfoRep = equipmentBaseInfoRep; _v_GetEquipmentAlertRep = v_GetEquipmentAlert; _sysDictTypeRep = sysDictTypeRep; @@ -65,10 +68,10 @@ .Where(!string.IsNullOrEmpty(input.EquipmentId), u => u.EquipmentId == input.EquipmentId) .Where(!string.IsNullOrEmpty(input.EquipmentName), u => EF.Functions.Like(u.EquipmentName, $"%{input.EquipmentName.Trim()}%")) .Where(!string.IsNullOrEmpty(input.WorkingProcedure), u => u.WorkingProcedure.Equals(input.WorkingProcedure)) .Where(!string.IsNullOrEmpty(input.AlertType),u=> (input.AlertType.Equals("1")&& u.IsAlertDetergent) ||(input.AlertType.Equals("2") && u.IsAlertKnifeTool) ||(input.AlertType.Equals("3") && u.IsAlertCuttingFluid) ||(input.AlertType.Equals("4") && u.IsAlert)) .Where(!string.IsNullOrEmpty(input.AlertType), u => (input.AlertType.Equals("1") && u.IsAlertDetergent) || (input.AlertType.Equals("2") && u.IsAlertKnifeTool) || (input.AlertType.Equals("3") && u.IsAlertCuttingFluid) || (input.AlertType.Equals("4") && u.IsAlert)) .OrderBy(PageInputOrder.OrderBuilder<EquipmentAlertSearch>(input)) .ProjectToType<EquipmentAlertInfoOutput>().ToListAsync(); return equipmentAlertInfos; @@ -106,7 +109,7 @@ CuttingFluidChangeTime = s.CuttingFluidChangeTime, Remarks = s.Remarks, CreatedTime = s.CreatedTime, TactTime=s.TactTime, TactTime = s.TactTime, }) .Distinct() .OrderBy(PageInputOrder.OrderBuilder<EquipmentBaseInfoSearch>(input)) @@ -114,7 +117,7 @@ .ToADPagedListAsync(input.PageNo, input.PageSize); return equipmentBaseInfos; } } /// <summary> /// æ ¹æ®è®¾å¤åºç¡ä¿¡æ¯ç®¡ç导åºExcel @@ -129,7 +132,7 @@ .Where(!string.IsNullOrEmpty(input.EquipmentName), u => u.EquipmentName == input.EquipmentName) .Where(!string.IsNullOrEmpty(input.WorkingProcedure), u => EF.Functions.Like(u.WorkingProcedure, $"%{input.WorkingProcedure.Trim()}%")) .Where(!string.IsNullOrEmpty(input.EquipmentModel), u => EF.Functions.Like(u.EquipmentModel, $"%{input.EquipmentModel.Trim()}%")) .Select(s=>new EquipmentBaseInfoExcelOutput .Select(s => new EquipmentBaseInfoExcelOutput { Id = s.Id, EquipmentId = s.EquipmentId, @@ -146,7 +149,7 @@ CuttingFluidChangeTime = s.CuttingFluidChangeTime, CuttingFluidChangeAlertThreshold = s.CuttingFluidChangeAlertThreshold, CreatedTime = s.CreatedTime.ConvertToDateTime(), UpdatedTime= s.UpdatedTime.ConvertToDateTime(), UpdatedTime = s.UpdatedTime.ConvertToDateTime(), TactTime = s.TactTime, }) .Distinct() @@ -174,13 +177,26 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("add")] [UnitOfWork] public async Task Add(AddEquipmentBaseInfoInput input) { var isExist = await _equipmentBaseInfoRep.AnyAsync(u => u.EquipmentId == input.EquipmentId, false); if (isExist) throw Oops.Oh($"å½å设å¤ç¼å·å·²åå¨ï¼æ°å¢å¤±è´¥ï¼"); var equipmentBaseInfo = input.Adapt<EquipmentBaseInfo>(); equipmentBaseInfo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); await _equipmentBaseInfoRep.InsertAsync(equipmentBaseInfo); //æ°å¢ç»´æ¤æ¥å¿ var log = new Equipmentbaseinfolog() { EquipmentBaseInfoId = equipmentBaseInfo.Id, EquipmentID = equipmentBaseInfo.EquipmentId, OperatorType = EquipmentbaseinfoOperatorTypeEnum.æ°å¢è®¾å¤, OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.æ°å¢è®¾å¤).ToString(), OperatorContent = "æ°å¢è®¾å¤:" + equipmentBaseInfo.EquipmentName, }; await _equipmentbaseinfologRep.InsertAsync(log); } /// <summary> @@ -191,11 +207,11 @@ [HttpPost("delete")] public async Task Delete(DeleteEquipmentBaseInfoInput input) { string[] EquiArr = new string[] {"EOP10", "EOP20", "EOP30", "EOP35", "EOP40", "EOP50", "EOP60", "EOP70", "EOP80" }; string[] EquiArr = new string[] { "EOP10", "EOP20", "EOP30", "EOP35", "EOP40", "EOP50", "EOP60", "EOP70", "EOP80" }; var equipmentBaseInfo = await _equipmentBaseInfoRep.FirstOrDefaultAsync(u => u.Id == input.Id); if(EquiArr.Contains(equipmentBaseInfo.EquipmentId)) throw Oops.Oh($"ç³»ç»é»è®¤ç设å¤ä¸è½è¿è¡å é¤ï¼"); if (EquiArr.Contains(equipmentBaseInfo.EquipmentId)) throw Oops.Oh($"ç³»ç»é»è®¤ç设å¤ä¸è½è¿è¡å é¤ï¼"); await _equipmentBaseInfoRep.DeleteAsync(equipmentBaseInfo); } @@ -206,13 +222,14 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("selectDelete")] public async Task SelectDelete(List<EquipmentBaseInfoInput> input) public async Task SelectDelete(List<EquipmentBaseInfoInput> input) { StringBuilder builder = new StringBuilder(); string[] EquiArr = new string[] { "EOP10", "EOP20", "EOP30", "EOP35", "EOP40", "EOP50", "EOP60", "EOP70", "EOP80" }; foreach (EquipmentBaseInfoInput item in input) { if (EquiArr.Contains(item.EquipmentId)) { if (EquiArr.Contains(item.EquipmentId)) { if (string.IsNullOrEmpty(builder.ToString())) { @@ -227,7 +244,7 @@ if (!string.IsNullOrEmpty(builder.ToString())) { throw Oops.Oh($"ç³»ç»é»è®¤ç设å¤ã"+builder.ToString()+"ãä¸è½è¿è¡å é¤ï¼"); throw Oops.Oh($"ç³»ç»é»è®¤ç设å¤ã" + builder.ToString() + "ãä¸è½è¿è¡å é¤ï¼"); } foreach (var item in input) @@ -243,13 +260,42 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("edit")] [UnitOfWork] public async Task Update(UpdateEquipmentBaseInfoInput input) { var isExist = await _equipmentBaseInfoRep.AnyAsync(u => u.Id == input.Id && u.EquipmentId == input.EquipmentId, false); if (!isExist) throw Oops.Oh($"设å¤ç¼å·ä¸è½è¿è¡åæ´ï¼ä¿®æ¹å¤±è´¥ï¼"); var isExistObj = await _equipmentBaseInfoRep.Where(u => u.Id == input.Id && u.EquipmentId == input.EquipmentId, false).FirstOrDefaultAsync(); if (isExistObj == null) throw Oops.Oh($"设å¤ç¼å·ä¸è½è¿è¡åæ´ï¼ä¿®æ¹å¤±è´¥ï¼"); var equipmentBaseInfo = input.Adapt<EquipmentBaseInfo>(); await _equipmentBaseInfoRep.UpdateAsync(equipmentBaseInfo,ignoreNullValues:false); await _equipmentBaseInfoRep.UpdateAsync(equipmentBaseInfo, ignoreNullValues: false); if (isExistObj.CuttingFluidChangeTime?.ToString("yyyy-MM-dd") != equipmentBaseInfo.CuttingFluidChangeTime?.ToString("yyyy-MM-dd")) { //æ°å¢ç»´æ¤æ¥å¿ var log = new Equipmentbaseinfolog() { EquipmentBaseInfoId = equipmentBaseInfo.Id, EquipmentID = equipmentBaseInfo.EquipmentId, OperatorType = EquipmentbaseinfoOperatorTypeEnum.ååæ¶²æ´æ¢, OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.ååæ¶²æ´æ¢).ToString(), OperatorContent = "æ´æ¢æ¶é´:" + equipmentBaseInfo.CuttingFluidChangeTime?.ToString("yyyy-MM-dd"), }; await _equipmentbaseinfologRep.InsertAsync(log); } if (isExistObj.Detergentchangetime?.ToString("yyyy-MM-dd") != equipmentBaseInfo.Detergentchangetime?.ToString("yyyy-MM-dd")) { //æ°å¢ç»´æ¤æ¥å¿ var log = new Equipmentbaseinfolog() { EquipmentBaseInfoId = equipmentBaseInfo.Id, EquipmentID = equipmentBaseInfo.EquipmentId, OperatorType = EquipmentbaseinfoOperatorTypeEnum.æ¸ æ´æ¶²æ´æ¢, OperatorTypeName = (EquipmentbaseinfoOperatorTypeEnum.æ¸ æ´æ¶²æ´æ¢).ToString(), OperatorContent = "æ´æ¢æ¶é´:" + equipmentBaseInfo.Detergentchangetime?.ToString("yyyy-MM-dd"), }; await _equipmentbaseinfologRep.InsertAsync(log); } } /// <summary> @@ -296,9 +342,9 @@ KnifeToolnames.Add("EOP50"); KnifeToolnames.Add("EOP60"); var equipmentBaseInfos = await _equipmentBaseInfoRep.DetachedEntities .Where(!string.IsNullOrEmpty(Type), u => (Type.ToUpper().Equals("QUALITY")?names.Contains(u.EquipmentId):false)||(Type.ToUpper().Equals("KNIFETOOL") ? KnifeToolnames.Contains(u.EquipmentId) : false)) .Where(!string.IsNullOrEmpty(Type), u => (Type.ToUpper().Equals("QUALITY") ? names.Contains(u.EquipmentId) : false) || (Type.ToUpper().Equals("KNIFETOOL") ? KnifeToolnames.Contains(u.EquipmentId) : false)) .ProjectToType<EquipmentBaseInfoOutput>() .OrderBy(o=>o.EquipmentId) .OrderBy(o => o.EquipmentId) .ToListAsync(); return equipmentBaseInfos; } iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/Dto/QueryYieldOutput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,291 @@ using Furion.TaskScheduler; using iWare.Wms.Core.Enum; using iWare.Wms.Core.Util.LowCode.Dto; using System; using System.ComponentModel; namespace iWare.Wms.Application { /// <summary> /// äº§éæ¥è¯¢è¾åºåæ° /// </summary> public class QueryYieldOutput { /// <summary> /// å·¥ä»¶å· /// </summary> public string WorkPieceID { get; set; } /// <summary> /// æåç /// </summary> public virtual string OP80NewCode { get; set; } /// <summary> /// å½åå·¥åº /// </summary> public string WorkingProcedureCurrent { get; set; } /// <summary> /// å½åè®¾å¤ /// </summary> public string EquipmentID { get; set; } /// <summary> /// 设å¤åç§° /// </summary> public string EquipmentName { get; set; } /// <summary> /// å·¥åºä¸çº¿æ¶é´ /// </summary> public DateTime? StartTime { get; set; } private DateTime? m_EndTime = null; /// <summary> /// å·¥åºä¸çº¿æ¶é´ /// </summary> public DateTime? EndTime { get { if (m_EndTime == null) { return null; } if (m_EndTime == Convert.ToDateTime("0001-01-01")) { return null; } else { return m_EndTime; } } set { m_EndTime = value; } } /// <summary> /// å å·¥æ¶é¿ /// </summary> public string TimeSceonds { get { if (EndTime == null || StartTime == null || EndTime == Convert.ToDateTime("0001-01-01") || StartTime == Convert.ToDateTime("0001-01-01")) { return ""; } TimeSpan ts = Convert.ToDateTime(EndTime) - Convert.ToDateTime(StartTime); return Convert.ToInt32(ts.TotalMinutes).ToString() + "min"; } } /// <summary> /// è´¨éç¶æ /// </summary> public int QualityState { get; set; } /// <summary> /// è´¨éç¶æåå /// </summary> public string QualityStateName { get { if (1 == QualityState) { return "åæ ¼"; } else if (2 == QualityState) { return "ä¸åæ ¼"; } else if (3 == QualityState) { return "çä¼¼"; } else { return ""; } } } /// <summary> /// æä½ç±»åï¼SPC/çäº§ï¼ /// </summary> public string OperationType { get; set; } /// <summary> /// æä½ç±»å /// </summary> public string OperationTypeHand { get { string str = ""; if (string.IsNullOrEmpty(OperationType)) { str = "å ¶ä»"; } else { str = OperationType; } return str; } } /// <summary> /// è´¨éä¿¡æ¯id /// </summary> public long QualityDataInfoID { get; set; } /// <summary> /// Idä¸»é® /// </summary> public long Id { get; set; } /// <summary> /// å建人 /// </summary> public string CreateUserName { get; set; } } /// <summary> /// äº§éæ¥è¯¢å¯¼åºè¾åºåæ° /// </summary> [Description("äº§éæ¥è¯¢")] public class ExportYieldOutput { /// <summary> /// å·¥ä»¶å· /// </summary> [Description("工件å·")] public string WorkPieceID { get; set; } /// <summary> /// å½åå·¥åº /// </summary> [Description("å½åå·¥åº")] public string WorkingProcedureCurrent { get; set; } /// <summary> /// 设å¤åç§° /// </summary> [Description("设å¤åç§°")] public string EquipmentName { get; set; } /// <summary> /// å·¥åºä¸çº¿æ¶é´ /// </summary> [Description("ä¸çº¿æ¶é´")] public string StartTime { get; set; } private string m_EndTime = ""; /// <summary> /// å·¥åºä¸çº¿æ¶é´ /// </summary> [Description("ä¸çº¿æ¶é´")] public string EndTime { get { if (string.IsNullOrEmpty(m_EndTime)) { return ""; } if (m_EndTime.Contains("0001-01-01")) { return ""; } else { return m_EndTime; } } set { m_EndTime = value; } } /// <summary> /// å å·¥æ¶é¿ /// </summary> [Description("å å·¥æ¶é¿")] public string TimeSceonds { get { if (string.IsNullOrEmpty(EndTime) || string.IsNullOrEmpty(StartTime)) { return ""; } TimeSpan ts = Convert.ToDateTime(EndTime) - Convert.ToDateTime(StartTime); return Convert.ToInt32(ts.TotalMinutes).ToString() + "min"; } } /// <summary> /// è´¨éç¶æ /// </summary> public int QualityState { get; set; } /// <summary> /// è´¨éç¶æåç§° /// </summary> [Description("è´¨éç¶æ")] public string QualityStateName { get { if (1 == QualityState) { return "åæ ¼"; } else if (2 == QualityState) { return "ä¸åæ ¼"; } else if (3 == QualityState) { return "çä¼¼"; } else { return ""; } } } /// <summary> /// æåç /// </summary> [Description("æåç ")] public string OP80NewCode { get; set; } /// <summary> /// Idä¸»é® /// </summary> public long Id { get; set; } /// <summary> /// å建人 /// </summary> [Description("æ°æ®æ¥æº")] public string CreateUserName { get; set; } } } iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
@@ -250,6 +250,116 @@ return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName }; } #region äº§éæ¥è¯¢ [Editby shaocx,2024-06-08] /// <summary> /// äº§éæ¥è¯¢ /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet("queryYield")] public async Task<PageResult<QueryYieldOutput>> QueryYield([FromQuery] WorkPieceProcessSearch input) { var workPieceProcesss = await (from process in _workPieceProcessRep.DetachedEntities join baseinfo in _equipmentBaseInfoRep.DetachedEntities on process.EquipmentID equals baseinfo.EquipmentId into joinedEmpty from baseinfo2 in joinedEmpty.DefaultIfEmpty() join workPiece in _workPieceInfoRep.DetachedEntities on process.WorkPieceID equals workPiece.WorkPieceID into joined2Empty from workPiece2 in joined2Empty.DefaultIfEmpty() where process.IsDeleted == false && process.WorkPieceID.Contains(string.IsNullOrEmpty(input.WorkPieceID) ? "" : input.WorkPieceID) && process.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : process.QualityState) && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) && process.WorkingProcedureCurrent == (string.IsNullOrEmpty(input.WorkingProcedureCurrent) ? process.WorkingProcedureCurrent : input.WorkingProcedureCurrent) && workPiece2.OP80NewCode == (string.IsNullOrEmpty(input.OP80NewCode) ? workPiece2.OP80NewCode : input.OP80NewCode) && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) && process.OperationType == (string.IsNullOrEmpty(input.OperationType) ? process.OperationType : input.OperationType) && !string.IsNullOrEmpty(process.WorkPieceID) && process.StartTime >= (input.StartTimeBeginTime.HasValue ? input.StartTimeBeginTime : DateTime.MinValue) && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue) select new WorkPieceProcessOutput { Id = process.Id, WorkPieceID = process.WorkPieceID, EquipmentID = process.EquipmentID, EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName), OP80NewCode = workPiece2.OP80NewCode, WorkingProcedureCurrent = process.WorkingProcedureCurrent, StartTime = process.StartTime, EndTime = process.EndTime, QualityState = process.QualityState, QualityDataInfoID = process.QualityDataInfoID, OperationType = process.OperationType, CreateUserName = process.CreatedUserName }).OrderBy(o => o.StartTime) .ProjectToType<QueryYieldOutput>() .ToADPagedListAsync(input.PageNo, input.PageSize); return workPieceProcesss; } /// <summary> /// 导åºäº§éæ¥è¯¢ /// </summary> /// <param name="input"></param> /// <returns>导åºçExcelæä»¶</returns> [HttpGet("exportYield")] public async Task<IActionResult> ExportYield([FromQuery] WorkPieceProcessSearch input) { var workPieceMachiningInfos = await (from process in _workPieceProcessRep.DetachedEntities join baseinfo in _equipmentBaseInfoRep.DetachedEntities on process.EquipmentID equals baseinfo.EquipmentId into joinedEmpty from baseinfo2 in joinedEmpty.DefaultIfEmpty() join workPiece in _workPieceInfoRep.DetachedEntities on process.WorkPieceID equals workPiece.WorkPieceID into joined2Empty from workPiece2 in joined2Empty.DefaultIfEmpty() where process.IsDeleted == false && process.WorkPieceID.Contains(string.IsNullOrEmpty(input.WorkPieceID) ? "" : input.WorkPieceID) && process.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : process.QualityState) && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) && process.WorkingProcedureCurrent == (string.IsNullOrEmpty(input.WorkingProcedureCurrent) ? process.WorkingProcedureCurrent : input.WorkingProcedureCurrent) && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID) && workPiece2.OP80NewCode == (string.IsNullOrEmpty(input.OP80NewCode) ? workPiece2.OP80NewCode : input.OP80NewCode) && process.OperationType == (string.IsNullOrEmpty(input.OperationType) ? process.OperationType : input.OperationType) && !string.IsNullOrEmpty(process.WorkPieceID) && process.StartTime >= (input.StartTimeBeginTime.HasValue ? input.StartTimeBeginTime : DateTime.MinValue) && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue) select new WorkPieceProcessExcelOutput { OP80NewCode = workPiece2.OP80NewCode, Id = process.Id, WorkPieceID = process.WorkPieceID, //EquipmentID = process.EquipmentID, EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName), WorkingProcedureCurrent = process.WorkingProcedureCurrent, StartTime = process.StartTime.ToString(), EndTime = process.EndTime.ToString(), //QualityState = process.QualityState, CreateUserName = process.CreatedUserName }).OrderBy(o => o.StartTime).Distinct() .ProjectToType<WorkPieceProcessExcelOutput>() .ToListAsync(); foreach (WorkPieceProcessExcelOutput item in workPieceMachiningInfos) { item.StartTime = string.IsNullOrEmpty(item.StartTime) ? "" : Convert.ToDateTime(item.StartTime).ToString("yyyy-MM-dd hh:mm:ss"); item.EndTime = string.IsNullOrEmpty(item.EndTime) ? "" : Convert.ToDateTime(item.EndTime).ToString("yyyy-MM-dd hh:mm:ss"); } MemoryStream ms = new(); DataConvertUtil.ToExcelData(workPieceMachiningInfos, _sysDictTypeRep, _sysDictDataRep, out List<string> headers, out List<List<object>> data, out string sheetName); 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 }; } #endregion /// <summary> /// å页æ¥è¯¢å·¥ä»¶å å·¥(工件信æ¯è¡¨) /// </summary> iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
@@ -1865,7 +1865,7 @@ 设å¤åºç¡ä¿¡æ¯ç®¡çæå¡ </summary> </member> <member name="M:iWare.Wms.Application.EquipmentBaseInfoService.#ctor(Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentBaseInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.V_GetEquipmentAlert,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictType,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictData,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentCurrentMonitor,Furion.DatabaseAccessor.MasterDbContextLocator})"> <member name="M:iWare.Wms.Application.EquipmentBaseInfoService.#ctor(Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.Equipmentbaseinfolog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentBaseInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.V_GetEquipmentAlert,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictType,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictData,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentCurrentMonitor,Furion.DatabaseAccessor.MasterDbContextLocator})"> <summary> 设å¤åºç¡ä¿¡æ¯æé </summary> @@ -14901,6 +14901,146 @@ <param name="input"></param> <returns></returns> </member> <member name="T:iWare.Wms.Application.QueryYieldOutput"> <summary> äº§éæ¥è¯¢è¾åºåæ° </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.WorkPieceID"> <summary> å·¥ä»¶å· </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.OP80NewCode"> <summary> æåç </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.WorkingProcedureCurrent"> <summary> å½åå·¥åº </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.EquipmentID"> <summary> å½åè®¾å¤ </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.EquipmentName"> <summary> 设å¤åç§° </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.StartTime"> <summary> å·¥åºä¸çº¿æ¶é´ </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.EndTime"> <summary> å·¥åºä¸çº¿æ¶é´ </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.TimeSceonds"> <summary> å å·¥æ¶é¿ </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.QualityState"> <summary> è´¨éç¶æ </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.QualityStateName"> <summary> è´¨éç¶æåå </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.OperationType"> <summary> æä½ç±»åï¼SPC/çäº§ï¼ </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.OperationTypeHand"> <summary> æä½ç±»å </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.QualityDataInfoID"> <summary> è´¨éä¿¡æ¯id </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.Id"> <summary> Idä¸»é® </summary> </member> <member name="P:iWare.Wms.Application.QueryYieldOutput.CreateUserName"> <summary> å建人 </summary> </member> <member name="T:iWare.Wms.Application.ExportYieldOutput"> <summary> äº§éæ¥è¯¢å¯¼åºè¾åºåæ° </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.WorkPieceID"> <summary> å·¥ä»¶å· </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.WorkingProcedureCurrent"> <summary> å½åå·¥åº </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.EquipmentName"> <summary> 设å¤åç§° </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.StartTime"> <summary> å·¥åºä¸çº¿æ¶é´ </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.EndTime"> <summary> å·¥åºä¸çº¿æ¶é´ </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.TimeSceonds"> <summary> å å·¥æ¶é¿ </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.QualityState"> <summary> è´¨éç¶æ </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.QualityStateName"> <summary> è´¨éç¶æåç§° </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.OP80NewCode"> <summary> æåç </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.Id"> <summary> Idä¸»é® </summary> </member> <member name="P:iWare.Wms.Application.ExportYieldOutput.CreateUserName"> <summary> å建人 </summary> </member> <member name="T:iWare.Wms.Application.WorkPieceProcessDto"> <summary> 工件å 工追溯è¾åºåæ° @@ -15558,6 +15698,20 @@ <param name="input"></param> <returns>导åºçExcelæä»¶</returns> </member> <member name="M:iWare.Wms.Application.WorkPieceProcessService.QueryYield(iWare.Wms.Application.WorkPieceProcessSearch)"> <summary> äº§éæ¥è¯¢ </summary> <param name="input"></param> <returns></returns> </member> <member name="M:iWare.Wms.Application.WorkPieceProcessService.ExportYield(iWare.Wms.Application.WorkPieceProcessSearch)"> <summary> 导åºäº§éæ¥è¯¢ </summary> <param name="input"></param> <returns>导åºçExcelæä»¶</returns> </member> <member name="M:iWare.Wms.Application.WorkPieceProcessService.WorkPieceInfoMachiningPage(iWare.Wms.Application.WorkPieceProcessSearch)"> <summary> å页æ¥è¯¢å·¥ä»¶å å·¥(工件信æ¯è¡¨) iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/Equipmentbaseinfolog.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,80 @@ using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; /* * @author : æ¨çåå * @date : 2024/6/9ä¸å3:33:04 * @desc : 设å¤ç»´æ¤è®°å½ */ namespace iWare.Wms.Core { /// <summary> /// 设å¤ç»´æ¤è®°å½ /// </summary> [Table("equipmentbaseinfolog")] [Comment("设å¤ç»´æ¤è®°å½")] public class Equipmentbaseinfolog : DEntityBase { /// <summary> /// 设å¤ID /// </summary> [Comment("设å¤ID")] [Required] public long EquipmentBaseInfoId { get; set; } /// <summary> /// 设å¤ç¼å· /// </summary> [Comment("设å¤ç¼å·")] [MaxLength(255)] public string EquipmentID { get; set; } /// <summary> /// æä½ç±»åID /// </summary> [Comment("æä½ç±»åID")] [Required] public EquipmentbaseinfoOperatorTypeEnum OperatorType { get; set; } /// <summary> /// æä½ç±»å /// </summary> [Comment("æä½ç±»å")] [Required] [MaxLength(255)] public string OperatorTypeName { get; set; } /// <summary> /// æä½å 容 /// </summary> [Comment("æä½å 容")] [MaxLength(255)] public string OperatorContent { get; set; } /// <summary> /// 夿³¨ /// </summary> [Comment("夿³¨")] [MaxLength(255)] public string Remark { get; set; } } } iWara.SCADA.Code/iWare.Wms.Core/Enum/EquipmentbaseinfoOperatorTypeEnum.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ using System.ComponentModel; namespace iWare.Wms.Core { /// <summary> /// 设å¤ç»´æ¤è®°å½æä½ç±»å /// </summary> public enum EquipmentbaseinfoOperatorTypeEnum { /// <summary> /// æ°å¢è®¾å¤ /// </summary> [Description("æ°å¢è®¾å¤")] æ°å¢è®¾å¤ = 0, /// <summary> /// æ¸ æ´æ¶²æ´æ¢ /// </summary> [Description("æ¸ æ´æ¶²æ´æ¢")] æ¸ æ´æ¶²æ´æ¢ = 1, /// <summary> /// æ¸ æ´æ¶²æ·»å /// </summary> [Description("æ¸ æ´æ¶²æ·»å ")] æ¸ æ´æ¶²æ·»å = 2, /// <summary> /// ååæ¶²æ´æ¢ /// </summary> [Description("ååæ¶²æ´æ¢")] ååæ¶²æ´æ¢ = 3, /// <summary> /// ååæ¶²æ·»å /// </summary> [Description("ååæ¶²æ·»å ")] ååæ¶²æ·»å = 4 } } iwara-scada-web/public/index.html
@@ -24,7 +24,7 @@ <div class="loading-wrp"> <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span> </div> <div style="display: flex; justify-content: center; align-items: center;">iWare.Wms</div> <div style="display: flex; justify-content: center; align-items: center;">奥æ®èªå¨å</div> </div> </div> <!-- require cdn assets js --> iwara-scada-web/src/utils/domUtil.js
@@ -16,4 +16,4 @@ } } export const domTitle = 'iWare.Wms' export const domTitle = '奥æ®èªå¨å' iwara-scada-web/src/views/main/EquipmentBaseInfo/editForm.vue
@@ -120,6 +120,7 @@ <script> import moment from 'moment' import { EquipmentBaseInfoEdit } from '@/api/modular/main/EquipmentBaseInfoManage' import { dateFormat } from '@/utils/util' export default { data() { return { @@ -179,6 +180,10 @@ // knifeToolChangeTime: record.knifeToolChangeTime != null ? moment(record.knifeToolChangeTime, 'YYYY-MM-DD') : '' // knifeToolChangeTime:moment(record.knifeToolChangeTime != null ? record.knifeToolChangeTime : "", 'YYYY-MM-DD'), }) //触åäºä»¶ this.onChangedetergentchangetime(null,record.detergentchangetime != null ? dateFormat(record.detergentchangetime, 'YYYY-mm-dd') : ''); this.onChangecuttingFluidchangetime(null,record.cuttingFluidChangeTime != null ? dateFormat(record.cuttingFluidChangeTime, 'YYYY-mm-dd') : ''); }) // this.form.getFieldDecorator('detergentchangetime', { initialValue: moment(record.detergentchangetime, 'YYYY-MM-DD') }) // this.detergentchangetimeDateString = moment(record.detergentchangetime).format('YYYY-MM-DD') @@ -226,6 +231,7 @@ }) }, onChangedetergentchangetime(date, dateString) { //debugger this.detergentchangetimeDateString = dateString },