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 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 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 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 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 list = hdcpService.selectBaseCheckPointListByCheckId(baseCheckPointDTO); List listLast = new ArrayList<>(); Set checkPointIds = new HashSet(); 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 hiddenDangerCheckPointIds = listLast.get(a).getHiddenDangerCheckPointIds(); hiddenDangerCheckPointIds.add(list.get(i).getId()); listLast.get(a).setHiddenDangerCheckPointIds(hiddenDangerCheckPointIds); break; } } } else { List 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 list = hdcpService.selectRiskCheckPointListByCheckId(riskCheckPointDTO); List listLast = new ArrayList<>(); Set checkPointIds = new HashSet(); 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 hiddenDangerCheckPointIds = listLast.get(a).getHiddenDangerCheckPointIds(); hiddenDangerCheckPointIds.add(list.get(i).getId()); listLast.get(a).setHiddenDangerCheckPointIds(hiddenDangerCheckPointIds); break; } } } else { List 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("异常"); } } }