yangys
2024-03-29 e7aaa62a5c499747275a78ed6157024f15b9ab1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package com.qianwen.smartman.modules.report.utils;
 
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.TreeSet;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import com.qianwen.smartman.common.constant.CommonConstant;
import com.qianwen.smartman.common.constant.CommonGroupConstant;
import com.qianwen.core.mp.support.Condition;
import com.qianwen.core.mp.support.Query;
import com.qianwen.core.tool.utils.BeanUtil;
import com.qianwen.core.tool.utils.CollectionUtil;
import com.qianwen.smartman.modules.cps.dto.ShiftInfoDTO;
import com.qianwen.smartman.modules.cps.mapper.WorkstationMapper;
import com.qianwen.smartman.modules.report.dto.WorkstationDataDTO;
import com.qianwen.smartman.modules.report.dto.WorkstationShiftDTO;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
 
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/report/utils/CommonUtil.class */
public class CommonUtil {
    private static final String SHIFT1 = "班次1";
    private static final String SHIFT2 = "班次2";
    private static final String SHIFT3 = "班次3";
    private static final String SHIFT4 = "班次4";
    private static final String DEFAULT_SHIFT = "未排班";
    public static final String PRINT_ALL_KEY = "printAll";
    public static final String DEFAULT_SHIFT_NAME = "默认系统日历-班次1";
    private static final Log log = LogFactory.get();
 
    public static String buildShiftName(Integer shiftIndex, Boolean isBlendShiftModel, String shiftName) {
        if (isBlendShiftModel.booleanValue() || StrUtil.isEmpty(shiftName)) {
            return buildShiftName(shiftIndex);
        }
        return shiftName;
    }
 
    public static String buildShiftName(Integer shiftIndex) {
        switch (shiftIndex.intValue()) {
            case 1:
                return SHIFT1;
            case 2:
                return SHIFT2;
            case 3:
                return SHIFT3;
            case 4:
                return SHIFT4;
            default:
                return DEFAULT_SHIFT;
        }
    }
 
    public static List<WorkstationShiftDTO> dataMerge(List<WorkstationDataDTO> workstationData, List<ShiftInfoDTO> shiftInfoDtoList) {
        List<WorkstationShiftDTO> workstationShifts = new ArrayList<>();
        workstationData.forEach(workstation -> {
            Boolean isBlendShiftModel = isBlendShiftModel(shiftInfoDtoList, workstation.getWorkstationId());
            List<ShiftInfoDTO> collect = shiftInfoDtoList.parallelStream().filter(shift -> {
                return shift.getWorkstationId().equals(workstation.getWorkstationId());
            }).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> {
                return new TreeSet<>(Comparator.comparing((v0) -> {
                    return v0.getShiftIndex();
                }));
            }), (v1) -> {
                return new ArrayList<>(v1);
            }));
            collect.forEach(c -> {
                WorkstationShiftDTO workstationShiftDTO = WorkstationShiftDTO.of(c.getShiftIndex()).setShiftName(buildShiftName(c.getShiftIndex(), isBlendShiftModel, c.getIndexName()));
                BeanUtil.copyProperties(workstation, workstationShiftDTO);
                workstationShifts.add(workstationShiftDTO);
            });
            workstationShifts.addAll(fillShift(collect, workstation));
        });
        return workstationShifts;
    }
 
    public static Boolean isBlendShiftModel(List<ShiftInfoDTO> shiftInfos, Long workstationId) {
        int size = ( shiftInfos.parallelStream().filter(s -> {
            return s.getWorkstationId().equals(workstationId);
        }).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> {
            return new TreeSet<>(Comparator.comparing((v0) -> {
                return v0.getModelId();
            }));
        }), (v1) -> {
            return new ArrayList<>(v1);
        }))).size();
        return Boolean.valueOf(size >= 2);
    }
 
    public static List<WorkstationShiftDTO> fillShift(List<ShiftInfoDTO> collect, WorkstationDataDTO workstationDataDTO) {
        if (collect.size() == 4) {
            return new ArrayList<>();
        }
        List<WorkstationShiftDTO> result = new ArrayList<>();
        if (CollectionUtil.isEmpty(collect)) {
            WorkstationShiftDTO workstationShiftDTO = WorkstationShiftDTO.of(1).setShiftName(DEFAULT_SHIFT_NAME);
            BeanUtil.copyProperties(workstationDataDTO, workstationShiftDTO);
            result.add(workstationShiftDTO);
        }
        return result;
    }
 
    public static Predicate<? super WorkstationShiftDTO> conditionFilter(String shiftName, List<Integer> shiftIndexList) {
        return shift -> {
            boolean condition1 = true;
            boolean condition2 = true;
            if (StrUtil.isNotEmpty(shiftName) && StrUtil.isNotEmpty(shift.getShiftName())) {
                condition1 = shift.getShiftName().contains(shiftName);
            }
            if (CollectionUtil.isNotEmpty(shiftIndexList)) {
                condition2 = shiftIndexList.contains(shift.getShiftIndex());
            }
            return condition1 && condition2;
        };
    }
 
    public static void fillWorkStationGroup(IPage<WorkstationDataDTO> source) {
        List<WorkstationDataDTO> list = source.getRecords().parallelStream().peek(w -> {
            if (StrUtil.isEmpty(w.getWorkstationGroup())) {
                w.setWorkstationGroup(CommonGroupConstant.DEFAULT_NAME);
            }
        }).collect(Collectors.toList());
        source.setRecords(list);
    }
 
    public static <T> T getRequestParameter(String parameterName, Class<T> clazz) {
        HttpServletRequest request = getRequest();
        String parameter = request.getParameter(parameterName);
        if (StrUtil.isEmpty(parameter) || "null".equals(parameter)) {
            log.info("  获取Request中参数{}失败,参数不存在", new Object[]{parameterName});
            return null;
        }
        return (T) Convert.convert(clazz, parameter);
    }
 
    public static HttpServletRequest getRequest() {
        ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
        if (attributes != null) {
            HttpServletRequest request = attributes.getRequest();
            return request;
        }
        throw new RuntimeException("获取Request失败!");
    }
 
    public static <T> IPage<T> getIPage(Class<T> clazz, Integer size, Integer pageNo, WorkstationMapper workstationMapper) {
        IPage<T> iPage;
        Boolean isPrintAll = (Boolean) getRequestParameter(PRINT_ALL_KEY, Boolean.class);
        if (!Objects.isNull(isPrintAll) && isPrintAll.booleanValue()) {
            iPage = Condition.getPage(new Query().setSize(Integer.valueOf(Math.toIntExact(workstationMapper.selectCount(null).longValue()))).setCurrent(CommonConstant.ONE));
        } else {
            iPage = Condition.getPage(new Query().setSize(size).setCurrent(pageNo));
        }
        return iPage;
    }
}