双重预防项目-国泰新华二开定制版
16639036659
2023-09-20 5686acccc233653115b5ab6e9664e6cca42bc96a
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
package com.ruoyi.project.mobile.service;
 
 
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.util.StringUtil;
import com.ruoyi.common.constant.TrHiddenDangerCheckConstants;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.security.ShiroUtils;
import com.ruoyi.project.enumerate.TrRiskTypeEnum;
import com.ruoyi.project.mobile.domain.ApiRequestHeader;
import com.ruoyi.project.mobile.domain.ApiResult;
import com.ruoyi.project.system.user.domain.User;
import com.ruoyi.project.system.user.service.IUserService;
import com.ruoyi.project.tr.hiddenDangerCheck.domain.HiddenDangerCheck;
import com.ruoyi.project.tr.hiddenDangerCheck.service.IHiddenDangerCheckService;
import com.ruoyi.project.tr.hiddenDangerCheckPoint.domain.BaseCheckPointDTO;
import com.ruoyi.project.tr.hiddenDangerCheckPoint.domain.HiddenDangerCheckPoint;
import com.ruoyi.project.tr.hiddenDangerCheckPoint.domain.RiskCheckPointDTO;
import com.ruoyi.project.tr.hiddenDangerCheckPoint.service.IHiddenDangerCheckPointService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.*;
 
 
@Service
public class ApiDangerBaseService extends BaseApiService {
 
    private static Logger logger = LoggerFactory.getLogger(ApiDangerBaseService.class);
 
    @Autowired
    IHiddenDangerCheckService hiddenDangerCheckService;//隐患Service
 
    @Autowired
    IHiddenDangerCheckPointService hdcpService;//隐患检查点Service
 
 
    /**
     * 获取隐患排查的检查点
     *
     * @param str
     * @param header
     * @return
     */
    public ApiResult selectRiskCheckPointListByCheckId(String str, ApiRequestHeader header) {
        //验证userId,loginName,token,deviceType,deviceId,appType 是否一致
        ApiRequestHeader requestHeader = getHeader(header);
        if (!(header.equals(requestHeader))) {
            return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致");
        }
        try {
            Map<String, String> queryHiddenDangerCheck = new ObjectMapper().readValue(str, HashMap.class);
            String checkId = queryHiddenDangerCheck.get("checkId");//隐患排查ID
            String riskType = queryHiddenDangerCheck.get("riskType");///** 风险单元类型(1设备设置,2作业活动,3工艺节点 4.基础清单) */
            if (StringUtil.isEmpty(checkId)||StringUtil.isEmpty(riskType)) {
                return ApiResult.error("传输参数为空");
            } else {
                if(TrRiskTypeEnum.BASE.getCode().toString().equals(riskType)){
                    BaseCheckPointDTO baseCheckPointDTO = new BaseCheckPointDTO();
                    baseCheckPointDTO.setCheckId(Long.valueOf(checkId));
                    List<BaseCheckPointDTO> resultList = hdcpService.selectBaseCheckPointListByCheckId(baseCheckPointDTO);
                    return ApiResult.success("请求数据成功", resultList);
                }else if(TrRiskTypeEnum.DEVICE.getCode().toString().equals(riskType)||
                        TrRiskTypeEnum.WORK.getCode().toString().equals(riskType)||
                        TrRiskTypeEnum.CRAFTS.getCode().toString().equals(riskType)||
                        TrRiskTypeEnum.ROOM.getCode().toString().equals(riskType)){
                    RiskCheckPointDTO riskCheckPointDTO = new RiskCheckPointDTO();
                    riskCheckPointDTO.setCheckId(Long.valueOf(checkId));
                    List<RiskCheckPointDTO> resultList = hdcpService.selectRiskCheckPointListByCheckId(riskCheckPointDTO);
                    return ApiResult.success("请求数据成功", resultList);
                }else{
                    return ApiResult.error("传输riskType有误");
                }
            }
        } catch (Exception e) {
            return ApiResult.error("异常");
        }
    }
 
 
 
 
    /**
     * 获取隐患排查的检查点,并合并检查内容相同的行
     *
     * @param str
     * @param header
     * @return
     */
    public ApiResult selectRiskCheckPointListByCheckIdAndMergeSamePoint(String str, ApiRequestHeader header) {
        //验证userId,loginName,token,deviceType,deviceId,appType 是否一致
        ApiRequestHeader requestHeader = getHeader(header);
        if (!(header.equals(requestHeader))) {
            return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致");
        }
        try {
            Map<String, String> queryHiddenDangerCheck = new ObjectMapper().readValue(str, HashMap.class);
            String checkId = queryHiddenDangerCheck.get("checkId");//隐患排查ID
            String riskType = queryHiddenDangerCheck.get("riskType");///** 风险单元类型(1设备设置,2作业活动,3工艺节点 4.基础清单) */
            if (StringUtil.isEmpty(checkId) || StringUtil.isEmpty(riskType)) {
                return ApiResult.error("传输参数为空");
            } else {
                if (TrRiskTypeEnum.BASE.getCode().toString().equals(riskType)) {
                    BaseCheckPointDTO baseCheckPointDTO = new BaseCheckPointDTO();
                    baseCheckPointDTO.setCheckId(Long.valueOf(checkId));
                    List<BaseCheckPointDTO> list = hdcpService.selectBaseCheckPointListByCheckId(baseCheckPointDTO);
 
                    List<BaseCheckPointDTO> listLast = new ArrayList<>();
                    Set<Long> checkPointIds = new HashSet<Long>();
                    for (int i = 0; i < list.size(); i++) {
                        if ("0".equals(list.get(i).getWhetherDanger())) {
                            listLast.add(list.get(i));
                            checkPointIds.add(list.get(i).getCheckPointId());
                        } else if ("1".equals(list.get(i).getWhetherDanger())) {
                            if (checkPointIds.contains(list.get(i).getCheckPointId())) {
                                for (int a = 0; a < listLast.size(); a++) {
                                    BaseCheckPointDTO baseCheckPointDTOTemp = listLast.get(a);
                                    if ((list.get(i).getCheckPointId()).equals(baseCheckPointDTOTemp.getCheckPointId())) {
                                        List<Long> hiddenDangerCheckPointIds = listLast.get(a).getHiddenDangerCheckPointIds();
                                        hiddenDangerCheckPointIds.add(list.get(i).getId());
                                        listLast.get(a).setHiddenDangerCheckPointIds(hiddenDangerCheckPointIds);
                                        break;
                                    }
                                }
                            } else {
                                List<Long> hiddenDangerCheckPointIds = new ArrayList<>();
                                hiddenDangerCheckPointIds.add(list.get(i).getId());
                                list.get(i).setHiddenDangerCheckPointIds(hiddenDangerCheckPointIds);
                                listLast.add(list.get(i));
                                checkPointIds.add(list.get(i).getCheckPointId());
                            }
                        } else {
                            listLast.add(list.get(i));
                            checkPointIds.add(list.get(i).getCheckPointId());
                        }
                    }
 
                    return ApiResult.success("请求数据成功", listLast);
                } else if (TrRiskTypeEnum.DEVICE.getCode().toString().equals(riskType) ||
                        TrRiskTypeEnum.WORK.getCode().toString().equals(riskType) ||
                        TrRiskTypeEnum.CRAFTS.getCode().toString().equals(riskType) ||
                        TrRiskTypeEnum.ROOM.getCode().toString().equals(riskType)) {
                    RiskCheckPointDTO riskCheckPointDTO = new RiskCheckPointDTO();
                    riskCheckPointDTO.setCheckId(Long.valueOf(checkId));
                    List<RiskCheckPointDTO> list = hdcpService.selectRiskCheckPointListByCheckId(riskCheckPointDTO);
 
                    List<RiskCheckPointDTO> listLast = new ArrayList<>();
                    Set<Long> checkPointIds = new HashSet<Long>();
                    for (int i = 0; i < list.size(); i++) {
                        if ("0".equals(list.get(i).getWhetherDanger())) {
                            listLast.add(list.get(i));
                            checkPointIds.add(list.get(i).getCheckPointId());
                        } else if ("1".equals(list.get(i).getWhetherDanger())) {
                            if (checkPointIds.contains(list.get(i).getCheckPointId())) {
                                for (int a = 0; a < listLast.size(); a++) {
                                    RiskCheckPointDTO riskCheckPointDTOTemp = listLast.get(a);
                                    if ((list.get(i).getCheckPointId()).equals(riskCheckPointDTOTemp.getCheckPointId())) {
                                        List<Long> hiddenDangerCheckPointIds = listLast.get(a).getHiddenDangerCheckPointIds();
                                        hiddenDangerCheckPointIds.add(list.get(i).getId());
                                        listLast.get(a).setHiddenDangerCheckPointIds(hiddenDangerCheckPointIds);
                                        break;
                                    }
                                }
                            } else {
                                List<Long> hiddenDangerCheckPointIds = new ArrayList<>();
                                hiddenDangerCheckPointIds.add(list.get(i).getId());
                                list.get(i).setHiddenDangerCheckPointIds(hiddenDangerCheckPointIds);
                                listLast.add(list.get(i));
                                checkPointIds.add(list.get(i).getCheckPointId());
                            }
                        } else {
                            listLast.add(list.get(i));
                            checkPointIds.add(list.get(i).getCheckPointId());
                        }
                    }
 
                    return ApiResult.success("请求数据成功", listLast);
                } else {
                    return ApiResult.error("传输riskType有误");
                }
            }
        } catch (Exception e) {
            return ApiResult.error("异常");
        }
    }
 
 
}