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("异常");
|
}
|
}
|
|
|
}
|