yangys
2025-11-21 e8ed1a91c77ab62a924f12acd55777f227bacd7e
smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/TimeUsedAnalysisServiceImpl.java
@@ -5,6 +5,7 @@
import java.time.chrono.ChronoLocalDate;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
@@ -42,15 +43,15 @@
import com.qianwen.smartman.common.enums.DefaultWcsEnum;
import com.qianwen.smartman.common.utils.LocalDateTimeUtils;
import com.qianwen.smartman.common.utils.MessageUtils;
import com.qianwen.smartman.modules.cps.entity.CommonGroup;
import com.qianwen.smartman.modules.cps.entity.GlobalWcs;
import com.qianwen.smartman.modules.cps.entity.ShiftDetail;
import com.qianwen.smartman.modules.cps.entity.Workstation;
import com.qianwen.smartman.modules.cps.enums.WorkstationTypeEnum;
import com.qianwen.smartman.modules.cps.mapper.CalendarMapper;
import com.qianwen.smartman.modules.cps.service.ICalendarService;
import com.qianwen.smartman.modules.cps.service.ICommonGroupService;
import com.qianwen.smartman.modules.cps.service.IWorkstationService;
import com.qianwen.smartman.modules.smis.entity.CommonGroup;
import com.qianwen.smartman.modules.smis.entity.GlobalWcs;
import com.qianwen.smartman.modules.smis.entity.ShiftDetail;
import com.qianwen.smartman.modules.smis.entity.Workstation;
import com.qianwen.smartman.modules.smis.enums.WorkstationTypeEnum;
import com.qianwen.smartman.modules.smis.mapper.CalendarMapper;
import com.qianwen.smartman.modules.smis.service.ICalendarService;
import com.qianwen.smartman.modules.smis.service.ICommonGroupService;
import com.qianwen.smartman.modules.smis.service.IWorkstationService;
import com.qianwen.smartman.modules.mdc.dto.CountStatusDTO;
import com.qianwen.smartman.modules.mdc.dto.GroupWorkDTO;
import com.qianwen.smartman.modules.mdc.dto.IntervalDateDto;
@@ -136,6 +137,7 @@
                res.setTotal(Long.valueOf(total));
                break;
            default:
               //按班次统计
                res = buildTimeUsedAnalysisShift(ids, queryTime, stationVO.getShiftIndex(), query);
                break;
        }
@@ -152,7 +154,7 @@
            return Integer.parseInt(c.getCode());
        }).collect(Collectors.toSet());
        
        List<SuperAggregateState> stateList = this.baseMapper.dateState(DateUtil.format(queryTime, "yyyyMMdd"), ids);
        List<SuperAggregateState> stateList = this.baseMapper.dateState(Integer.parseInt(DateUtil.format(queryTime, "yyyyMMdd")) , ids);
        Map<Long, Map<Integer, Long>> map = buildStateMap(wcsSet, stateList);
        for (Workstation workstation : workstations) {
            workStationDetails.add(NameIdDTO.builder().id(workstation.getId()).name(workstation.getName() + "\n" + workstation.getCode()).build());
@@ -216,7 +218,7 @@
        LinkedHashMap<String, List<Workstation>> calendarMap = workstationPages.getRecords().stream().collect(Collectors.groupingBy(Workstation::getCalendarCode, LinkedHashMap::new, Collectors.toList()));
        calendarMap.forEach((calendarCode, workStationsList) -> {
            List<Long> workStationIds =  workStationsList.stream().map(Workstation::getId).collect(Collectors.toList());
            List<SuperAggregateState> stateList = this.baseMapper.shiftState(workStationIds, DateUtil.format(queryTime, "yyyyMMdd"), shiftIndex, calendarCode);
            List<SuperAggregateState> stateList = this.baseMapper.shiftState(workStationIds, Integer.parseInt(DateUtil.format(queryTime, "yyyyMMdd")), shiftIndex, calendarCode);
            Map<Long, Map<Integer, Long>> map = buildStateMap(wcsSet, stateList);
            Iterator<Workstation> it = workStationsList.iterator();
            while (it.hasNext()) {
@@ -289,7 +291,7 @@
                Set<Integer> wcsList = listGlobalWcs().stream().map(c -> {
                    return Integer.valueOf(Integer.parseInt(c.getCode()));
                }).collect(Collectors.toSet());
                List<SuperAggregateState> stateEndTimeNotNullList = this.baseMapper.dateState(DateUtil.format(queryTime, "yyyyMMdd"), Lists.newArrayList(workstationIds));
                List<SuperAggregateState> stateEndTimeNotNullList = this.baseMapper.dateState(Integer.parseInt(DateUtil.format(queryTime, "yyyyMMdd")) , Lists.newArrayList(workstationIds));
                Map<Integer, Long> map = buildStateGroupMap(wcsList, FilterOffUtils.filterOffDay(stateEndTimeNotNullList, OpenTypeEnums.TIME_USED_ANALYSIS));
                Map<Integer, Long> countResults = mergeMap(map, wcsList);
                log.info("groupDay:{}", countResults);
@@ -472,18 +474,11 @@
        workstationIds.forEach(workstationId -> {
           Workstation workstation = this.workstationService.getOne(Wrappers.<Workstation>lambdaQuery().eq(Workstation::getId, workstationId)
                 .eq(Workstation::getType, WorkstationTypeEnum.MACHINE.getCode()).isNotNull(Workstation::getCalendarCode));
           /*
            Workstation workstation = (Workstation) this.workstationService.getOne((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
                return v0.getId();
            }, workstationId)).eq((v0) -> {
                return v0.getType();
            }, WorkstationTypeEnum.MACHINE.getCode())).isNotNull((v0) -> {
                return v0.getCalendarCode();
            }));*/
            if (Func.isEmpty(workstation)) {
                idToValue.put(workstationId, new ArrayList<>());
            }
            if (workstation != null) {
                //idToValue.put(workstationId, new ArrayList<>());
               idToValue.put(workstationId, Collections.emptyList());//yys 20241011 20:17
            }else {
                List<ShiftIndexNameDTO> dtos = this.calendarService.queryShiftIndexName(workstation.getCalendarCode(), localDate.getYear(), DateUtil.formatDate(localDate));
                idToValue.put(workstationId, dtos);
            }