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<String, String> 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<HiddenDangerCheck>());
|
} 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<HiddenDangerCheck>());
|
}
|
List<HiddenDangerCheckPoint> 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("异常");
|
}
|
}
|
|
}
|