コード例 #1
0
        public virtual async Task <List <EquipmentInfoDto> > GetEquipmentInfos(int?processTypeId, int?unitId)
        {
            var manager      = Manager as EquipmentManager;
            var processTypes = await ProcessTypeManager.GetAllList();

            var query = Manager.GetAll().Where(o => o.UnitId == unitId);

            if (processTypeId.HasValue)
            {
                query = from equipment in query
                        join equipmentProcessType in EquipmentProcessTypeRepository.GetAll() on equipment.Id equals equipmentProcessType.EquipmentId
                        where equipmentProcessType.ProcessTypeId == processTypeId
                        select equipment;
            }

            var equipments = await query.Include(o => o.EquipmentProcessTypes).ToListAsync();

            var result = new List <EquipmentInfoDto>();

            foreach (var equipment in equipments)
            {
                var dto = equipment.MapTo <EquipmentInfoDto>();
                dto.ProcessTypeName = string.Join(',', equipment.EquipmentProcessTypes.Select(o => processTypes.FirstOrDefault(p => p.Id == o.ProcessTypeId)?.ProcessTypeName));
                result.Add(dto);
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 设备现场信息
        /// </summary>
        /// <param name="equipmentProcessInfoSearchDto"></param>
        /// <returns></returns>
        public virtual async Task <List <EquipmentProcessInfoDto> > GetEquipmentProcessInfos(EquipmentProcessInfoSearchDto equipmentProcessInfoSearchDto)
        {
            var manager      = Manager as EquipmentManager;
            var processTypes = await ProcessTypeManager.GetAllList();

            var query = Manager.GetAll()
                        .Include(o => o.Operator)
                        .Where(o => o.UnitId == equipmentProcessInfoSearchDto.UnitId)
                        .WhereIf(!equipmentProcessInfoSearchDto.Keyword.IsNullOrEmpty(), o => o.EquipmentSN.Contains(equipmentProcessInfoSearchDto.Keyword));

            if (equipmentProcessInfoSearchDto.ProcessTypeId.HasValue)
            {
                query = from equipment in query
                        join equipmentProcessType in EquipmentProcessTypeRepository.GetAll() on equipment.Id equals equipmentProcessType.EquipmentId
                        where equipmentProcessType.ProcessTypeId == equipmentProcessInfoSearchDto.ProcessTypeId
                        select equipment;
            }

            var equipments = await query.Include(o => o.EquipmentProcessTypes).ToListAsync();

            var result = new List <EquipmentProcessInfoDto>();

            var startDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));

            foreach (var equipment in equipments)
            {
                var dto = equipment.MapTo <EquipmentProcessInfoDto>();
                dto.Operator        = equipment.Operator?.Name;
                dto.ProcessTypeName = string.Join(',', equipment.EquipmentProcessTypes.Select(o => processTypes.FirstOrDefault(p => p.Id == o.ProcessTypeId)?.ProcessTypeName));
                //获取设备正在加工中的任务
                var task = await manager.GetProcessingTask(equipment.Id);

                //设备上安排的未完成任务
                //var unFinishedTasks =await  GetUnFinishedTasks(equipment.Id);
                dto.TaskId    = task?.Id;
                dto.PartSN    = task?.Part?.PartSN;
                dto.PartName  = task?.Part?.PartName;
                dto.ProjectSN = task?.Part?.Project?.ProjectSN;
                dto.ProcessTaskProgressInfo = task?.ProcessTaskProgressInfo;
                //dto.Tasks = unFinishedTasks;
                dto.TaskNumber = await manager.GetUnFinishedTasks(equipment.Id).CountAsync();

                dto.EquipmentLoadInfo = await manager.GetLoadInfo(equipment.Id, startDate, startDate.AddDays(7));

                result.Add(dto);
            }

            return(result);
        }
コード例 #3
0
        public virtual async Task <EquipmentInfoDto> GetEquipmentInfo(int equipmentId)
        {
            var processTypes = await ProcessTypeManager.GetAllList();

            using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MustHaveTenant))
            {
                //不直接调用Manager.GetAll,以避免使用底层权限过滤
                var equipment = await Manager.Repository.GetAll().Include(o => o.EquipmentProcessTypes).Where(o => o.Id == equipmentId)
                                .SingleOrDefaultAsync();

                var dto = equipment.MapTo <EquipmentInfoDto>();
                dto.ProcessTypeName = string.Join(',', equipment.EquipmentProcessTypes.Select(o => processTypes.FirstOrDefault(p => p.Id == o.ProcessTypeId)?.ProcessTypeName));
                return(dto);
            }
        }