yangys
2024-04-28 258a769f6790f832d1c67839d59be04a118767e5
smart-man-boot/src/main/java/com/qianwen/smartman/modules/tdengine/service/impl/WorkstationDynamicCollectServiceImpl.java
@@ -1,31 +1,31 @@
package com.qianwen.smartman.modules.tdengine.service.impl;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.google.common.collect.Lists;
import java.lang.invoke.SerializedLambda;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.qianwen.smartman.common.cache.cps.TimeSliceCache;
import com.qianwen.smartman.common.constant.DateConstant;
import com.qianwen.smartman.common.enums.DynamicCalculationWcsDataType;
import com.qianwen.smartman.common.enums.WcsDataTypeEnums;
import com.qianwen.smartman.common.utils.DelayList;
import com.qianwen.smartman.common.utils.ExtraLambdaQueryWrapper;
import com.qianwen.smartman.common.utils.Lambda;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.core.tool.utils.SpringUtil;
import com.qianwen.smartman.common.cache.cps.TimeSliceCache;
import com.qianwen.smartman.common.enums.DynamicCalculationWcsDataType;
import com.qianwen.smartman.common.enums.WcsDataTypeEnums;
import com.qianwen.smartman.common.utils.DelayList;
import com.qianwen.smartman.common.utils.Lambda;
import com.qianwen.smartman.modules.cps.dto.CalendarShiftTimeSlicesDTO;
import com.qianwen.smartman.modules.cps.entity.Workstation;
import com.qianwen.smartman.modules.cps.entity.WorkstationWcs;
@@ -41,9 +41,8 @@
import com.qianwen.smartman.modules.visual.dto.VisualTimeDTO;
import com.qianwen.smartman.modules.visual.utils.VisualUtils;
import com.qianwen.smartman.modules.visual.vo.VisualUsagePolicyEnum;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import cn.hutool.core.date.LocalDateTimeUtil;
@Service
public class WorkstationDynamicCollectServiceImpl implements IWorkstationDynamicCollectService {
@@ -79,7 +78,7 @@
        return SpringUtil.getBean(dynamicCalculationWcsDataType.getOperationMapper());
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public void removeTableUpdateWcs(List<WorkstationWcs> updateWcsList) {
       Map<Long, WorkstationWcs> current = new HashMap<>();
       
@@ -111,7 +110,7 @@
        */
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public void removeTableDeleteWcs(final List<WorkstationWcs> deleteWcsList) {
        deleteWcsList.forEach(this::removeTable);
    }
@@ -122,11 +121,9 @@
        });
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public void removeTable(final WorkstationWcsUsage workstationWcsUsage) {
        this.workstationWcsService.list(Lambda.eq((v0) -> {
            return v0.getUsageId();
        }, workstationWcsUsage.getId())).forEach(it -> {
        this.workstationWcsService.list(Lambda.eq(WorkstationWcs::getUsageId, workstationWcsUsage.getId())).forEach(it -> {
            removeTable(it.getWorkstationId(), workstationWcsUsage.getUsageCode(), workstationWcsUsage.getCollectType());
        });
    }
@@ -136,46 +133,34 @@
        this.delayHandlerQueue.add(new RemoveTableDTO(workstationId, usageCode, collectType));
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public void removeTableByDelWorkstations(final List<Long> workstationIds) {
       //new ExtraLambdaQueryWrapper<WorkstationWcs>().eq(WorkstationWcs::getWorkstationId, workstationId).isNotNull(WorkstationWcs::getUsageId).select(new SFunction[] { WorkstationWcs::getUsageId }).stream().map(WorkstationWcs::getUsageId).map(this.workstationWcsUsageService::getById).forEach(()));
       //workstationIds.forEach(workstationId -> this.workstationWcsService.list((Wrapper)((ExtraLambdaQueryWrapper)Lambda.eq(WorkstationWcs::getWorkstationId, workstationId).isNotNull(WorkstationWcs::getUsageId)).select(new SFunction[] { WorkstationWcs::getUsageId })).stream().map(WorkstationWcs::getUsageId).map(this.workstationWcsUsageService::getById).forEach(()));
       
        workstationIds.forEach(workstationId -> {
           //Stream map = this.workstationWcsService.list(((ExtraLambdaQueryWrapper) Lambda.eq(WorkstationWcs::getWorkstationId, workstationId).isNotNull(WorkstationWcs::getUsageId).select(new SFunction[] { WorkstationWcs::getUsageId }).stream().map(WorkstationWcs::getUsageId);
            Stream<Long> map = this.workstationWcsService.list(Lambda.<WorkstationWcs>eq(WorkstationWcs::getWorkstationId, workstationId).isNotNull(WorkstationWcs::getUsageId)
                  .select(WorkstationWcs::getUsageId )).stream().map(WorkstationWcs::getUsageId);
            ////.map(WorkstationWcs::getUsageId);
            IWorkstationWcsUsageService iWorkstationWcsUsageService = this.workstationWcsUsageService;
            //iWorkstationWcsUsageService.getClass();
            map.map((v1) -> {
                return this.workstationWcsUsageService.getById(v1);
            map.map((usageId) -> {
                return this.workstationWcsUsageService.getById(usageId);
            }).forEach(it -> {
                removeTable(workstationId, it.getUsageCode(), it.getCollectType());
            });
        });
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public List<Long> getWorkstationIdsByUsageId(final Long usageId) {
       
       return this.workstationWcsService.list(Lambda.<WorkstationWcs>eq(WorkstationWcs::getUsageId, usageId).select(WorkstationWcs::getWorkstationId)).stream()
                .filter(Func::notNull)
                .map(WorkstationWcs::getWorkstationId).collect(Collectors.toList());
       /*
        return (List) this.workstationWcsService.list(Lambda.eq((v0) -> {
            return v0.getUsageId();
        }, usageId).select((v0) -> {
            return v0.getWorkstationId();
        })).stream().filter((v0) -> {
            return Func.notNull(v0);
        }).map((v0) -> {
            return v0.getWorkstationId();
        }).collect(Collectors.toList());
        */
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public DynamicCountDateAggregateDTO getOutputDataByWorkstationAndFactoryDate(List<Long> workstationIds, String timeLevel, VisualUsagePolicyEnum policyEnum, WorkstationWcsUsage workstationWcsUsage) {
        DynamicCalculationWcsDataType dynamicCalculationWcsDataType = DynamicCalculationWcsDataType.of(workstationWcsUsage.getCollectType().intValue());
           List<Workstation> workstationList = this.workstationService.list(Lambda.<Workstation>create().orderByAsc(Workstation::getId, workstationIds)
@@ -198,7 +183,7 @@
        */
    }
    @Override // org.springblade.modules.tdengine.service.IWorkstationDynamicCollectService
    @Override
    public DynamicCountDateAggregateDTO getShiftOutput(final List<Long> workstationIds, final WorkstationWcsUsage workstationWcsUsage) {
       DynamicCalculationWcsDataType dynamicCalculationWcsDataType = DynamicCalculationWcsDataType.of(workstationWcsUsage.getCollectType().intValue());
        List<Workstation> workstationList = this.workstationService.list(Wrappers.<Workstation>lambdaQuery().in(Workstation::getId, workstationIds));