package com.ruoyi.project.mobile.service; import com.fasterxml.jackson.databind.ObjectMapper; 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.doublePrevention.service.RiskService; import com.ruoyi.doublePrevention.service.baseService.PreventRiskDangerConfirmLogService; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; 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.HiddenDangerCheckPoint; import com.ruoyi.project.tr.hiddenDangerCheckPoint.service.IHiddenDangerCheckPointService; import org.apache.commons.lang3.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.lang.reflect.AnnotatedType; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class ApiDangerReportService extends BaseApiService { private static Logger logger = LoggerFactory.getLogger(ApiDangerReportService.class); @Autowired IHiddenDangerCheckService hiddenDangerCheckService;//隐患Service @Autowired IHiddenDangerCheckPointService hdcpService;//隐患检查点Service @Autowired IUserService userService;//用户Service @Autowired private PreventRiskDangerConfirmLogService confirmLogService; @Autowired private RiskService riskService; /** * 获取隐患上报列表 * * @param str * @param header * @return */ public ApiResult getDangerReportList(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 dangerReportType = queryHiddenDangerCheck.get("dangerReportType");//客户端传输隐患类型 HiddenDangerCheckPoint hdcp = new HiddenDangerCheckPoint(); if (StringUtils.isEmpty(dangerReportType) || StringUtils.isEmpty(dangerReportType)) { return ApiResult.success("传输dangerReportType为空", new ArrayList()); } else { //0待我处理 1我已处理 2我的上报 if ("0".equals(dangerReportType)) { hdcp.setDangerSources(TrHiddenDangerCheckConstants.DANGER_SOURCES_REPORT_PRODUCE);//隐患来源(隐患主动上报生成) hdcp.setJudgeUserId(Long.valueOf(header.userId)); hdcp.setReportStatus("0");//上报判定结果----未判定 } else if ("1".equals(dangerReportType)) { hdcp.setDangerSources(TrHiddenDangerCheckConstants.DANGER_SOURCES_REPORT_PRODUCE);//隐患来源(隐患主动上报生成) hdcp.setJudgeUserId(Long.valueOf(header.userId)); hdcp.setReportStatusByHasHandle("1");//设置任意字段,数据库查询设置report_status为1或2,即上报判定结果----已判定 } else if ("2".equals(dangerReportType)) { hdcp.setDangerSources(TrHiddenDangerCheckConstants.DANGER_SOURCES_REPORT_PRODUCE);//隐患来源(隐患主动上报生成) hdcp.setRegisterUserId(Long.valueOf(header.userId));//上报userID hdcp.setReportStatusIsNotNull("1");//设置任意字段,数据库查询设置report_status上报判定结果IS NOT NULL*/ } else { return ApiResult.success("传输dangerReportType有误", new ArrayList()); } List resultList = hdcpService.selectHiddenDangerCheckPointList(hdcp); return ApiResult.success("请求数据成功", resultList); } } catch (Exception e) { return ApiResult.error("异常"); } } /** * 我的上报删除(进行中的可以删除,已完成的不能删除) */ public ApiResult removeDangerReport(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 { HiddenDangerCheckPoint hdcpTemp = new ObjectMapper().readValue(str, HiddenDangerCheckPoint.class); if(hdcpTemp.getId()==null){ return ApiResult.error("id不能为空"); } HiddenDangerCheckPoint hdcp = hdcpService.selectHiddenDangerCheckPointById(hdcpTemp.getId()); if(hdcp.getCheckId()!=null){ hdcpService.deleteHiddenDangerCheckPointById(hdcp.getId()); hiddenDangerCheckService.deleteHiddenDangerCheckById(hdcp.getCheckId()); hdcpService.getTaskCountTotal(Long.valueOf(header.userId));//查询未执行任务总数量并推送 return ApiResult.success("我的上报删除成功"); } return ApiResult.error("数据有误"); } catch (Exception e) { return ApiResult.error("异常"); } } /** * 新增保存隐患上报------登记隐患 */ @Transactional public ApiResult addDangerReportSave(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 { HiddenDangerCheckPoint hdcp = new ObjectMapper().readValue(str, HiddenDangerCheckPoint.class); HiddenDangerCheck hdc = new HiddenDangerCheck(); if (ObjectUtils.isEmpty(hdcp.getCheckPerson())){ throw new RuntimeException("检查人不能为空"); } if (ObjectUtils.isEmpty(hdcp.getFindTime())){ throw new RuntimeException("发现时间不能为空"); } if (ObjectUtils.isEmpty(hdcp.getDangerSrc())){ throw new RuntimeException("隐患来源不能为空"); } hdc.setCreateBy(header.loginName);//创建者 hdc.setCreateTime(DateUtils.getNowDate());//获取创建时间 hdc.setDangerDeptId(hdcp.getDangerDeptId()); hdc.setDangerDeptName(hdcp.getDangerDeptName()); hdc.setDangerPlaceId(hdcp.getDangerPlaceId()); hdc.setDangerPlaceName(hdcp.getDangerPlaceName()); hiddenDangerCheckService.insertHiddenDangerCheck(hdc);//构造隐患排查对象保存,主要保存隐患责任部门,隐患地点 hdcp.setCheckId(hdc.getCheckId()); hdcp.setCreateBy(header.loginName);//创建者 hdcp.setCreateTime(DateUtils.getNowDate());//获取创建时间 hdcp.setUpdateBy(header.loginName); hdcp.setUpdateTime(DateUtils.getNowDate()); hdcp.setRegisterCreateTime(DateUtils.getNowDate());//设置隐患登记上报创建时间 hdcp.setRegisterUserId(Long.valueOf(header.userId));//设置隐患登记上报创建人ID User user = userService.selectUserById(Long.valueOf(header.userId)); hdcp.setRegisterUserName(user.getUserName());//设置隐患登记上报创建人名称 hdcp.setDangerSources(TrHiddenDangerCheckConstants.DANGER_SOURCES_REPORT_PRODUCE); //隐患来源(隐患主动上报生成) hdcp.setReportStatus(TrHiddenDangerCheckConstants.REPORT_STATUS_NOT_JUDGE);//隐患上报(未判定) hdcp.setRegisterSubmitTime(DateUtils.getNowDate());//设置隐患上报提交时间 hdcp.setCompanyId(user.getCompanyId()); int result = hdcpService.insertHiddenDangerCheckPoint(hdcp); //20250623增加此逻辑 int result1 = riskService.insertDangerInfo(hdcp.getId(), hdcp); if (result1< 1){ throw new RuntimeException("添加隐患附属信息失败"); } hdcpService.getTaskCountTotal(Long.valueOf(header.userId));//查询未执行任务总数量并推送 return ApiResult.success("登记隐患新增成功"); } catch (Exception e) { return ApiResult.error("异常"); } } /** * 判定隐患 */ public ApiResult editJudgeDangerReportSave(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 { HiddenDangerCheckPoint hdcp = new ObjectMapper().readValue(str, HiddenDangerCheckPoint.class); hdcp.setUpdateBy(header.loginName); hdcp.setUpdateTime(DateUtils.getNowDate()); hdcp.setJudgeCreateTime(DateUtils.getNowDate());//设置隐患上报判定时间 if (!StringUtils.isEmpty(hdcp.getReportStatus())) { if (TrHiddenDangerCheckConstants.REPORT_STATUS_NOT_DANGER.equals(hdcp.getReportStatus())) {//隐患上报(不是隐患) hdcp.setWhetherDanger(TrHiddenDangerCheckConstants.WHETHER_DANGER_NOT);//是否为隐患(正常) hdcp.setExamineUserId(null); hdcp.setExamineUserName(null); } else if (TrHiddenDangerCheckConstants.REPORT_STATUS_YES_DANGER.equals(hdcp.getReportStatus())) {//隐患上报(是隐患) hdcp.setWhetherDanger(TrHiddenDangerCheckConstants.WHETHER_DANGER_YES);//是否为隐患(隐患) hdcp.setDangerLevel("0");//默认设置为一般隐患 hdcp.setStage(TrHiddenDangerCheckConstants.DANGER_STAGE_PLAN_EXAMINE);//隐患核查阶段(数据进入到隐患核查阶段) hdcp.setExamineStatus(TrHiddenDangerCheckConstants.EXAMINE_STATUS_NOT_EXAMINE);//核查状态(待核查) } } hdcpService.updateHiddenDangerCheckPoint(hdcp); int result = confirmLogService.saveConfirmLog(hdcp); if (result < 1){ return ApiResult.error("操作失败"); } hdcpService.getTaskCountTotal(Long.valueOf(header.userId));//查询未执行任务总数量并推送 return ApiResult.success("判定成功"); } catch (Exception e) { return ApiResult.error("异常"); } } }