隐患整改
This commit is contained in:
@ -34,6 +34,11 @@ public class HazardHiddenDangerRectify extends BaseEntity {
|
||||
*/
|
||||
private Long hiddenDangerId;
|
||||
|
||||
/**
|
||||
* 整改期限
|
||||
*/
|
||||
private LocalDateTime rectifyDeadline;
|
||||
|
||||
/**
|
||||
* 整改次数
|
||||
*/
|
||||
|
||||
@ -41,6 +41,12 @@ public class HazardHiddenDangerRectifyVo implements Serializable {
|
||||
@ExcelProperty(value = "关联隐患ID")
|
||||
private Long hiddenDangerId;
|
||||
|
||||
/**
|
||||
* 整改期限
|
||||
*/
|
||||
@ExcelProperty(value = "整改期限")
|
||||
private LocalDateTime rectifyDeadline;
|
||||
|
||||
/**
|
||||
* 整改次数
|
||||
*/
|
||||
@ -89,6 +95,12 @@ public class HazardHiddenDangerRectifyVo implements Serializable {
|
||||
@ExcelProperty(value = "复查人ID")
|
||||
private Long reviewUserId;
|
||||
|
||||
/**
|
||||
* 复查人名字
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "reviewUserId")
|
||||
private String reviewUserName;
|
||||
|
||||
/**
|
||||
* 复查说明
|
||||
*/
|
||||
@ -106,6 +118,7 @@ public class HazardHiddenDangerRectifyVo implements Serializable {
|
||||
*/
|
||||
@Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "reviewFiles")
|
||||
private String reviewFilesUrl;
|
||||
|
||||
/**
|
||||
* 复查时间
|
||||
*/
|
||||
|
||||
@ -32,7 +32,6 @@ import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 隐患整改情况Service业务层处理
|
||||
@ -158,36 +157,29 @@ public class HazardHiddenDangerRectifyServiceImpl extends ServiceImpl<HazardHidd
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean rectification(HazardHiddenDangerRectifyRectificationReq req) {
|
||||
|
||||
Long id = req.getId();
|
||||
HazardHiddenDangerRectify oldRectify = this.getById(id);
|
||||
if (oldRectify == null) {
|
||||
throw new ServiceException("未找到该数据");
|
||||
}
|
||||
Long userId = LoginHelper.getUserId();
|
||||
if (!oldRectify.getRectifyUserId().equals(userId)) {
|
||||
throw new ServiceException("您没有权限修改该数据");
|
||||
}
|
||||
if (!oldRectify.getReviewStatus().equals(HseSafetyInspectionReviewTypeEnum.NOT_REVIEW.getValue())) {
|
||||
throw new ServiceException("该数据已审核,请勿重复操作");
|
||||
}
|
||||
Long hiddenDangerId = oldRectify.getHiddenDangerId();
|
||||
HazardHiddenDanger hiddenDanger = hazardHiddenDangerService.getById(hiddenDangerId);
|
||||
HazardHiddenDanger hiddenDanger = hazardHiddenDangerService.getById(id);
|
||||
if (hiddenDanger == null) {
|
||||
throw new ServiceException("未找到该数据");
|
||||
}
|
||||
// 判断是否为最新的一条
|
||||
Integer maxCount = this.lambdaQuery()
|
||||
.eq(HazardHiddenDangerRectify::getHiddenDangerId, hiddenDangerId)
|
||||
.select(HazardHiddenDangerRectify::getRectifyCount)
|
||||
HazardHiddenDangerRectify oldRectify = this.lambdaQuery()
|
||||
.eq(HazardHiddenDangerRectify::getHiddenDangerId, id)
|
||||
.orderByDesc(HazardHiddenDangerRectify::getRectifyCount)
|
||||
.last("limit 1")
|
||||
.one()
|
||||
.getRectifyCount();
|
||||
if (!Objects.equals(maxCount, oldRectify.getRectifyCount())) {
|
||||
throw new ServiceException("请修改最新的一条整改记录");
|
||||
.one();
|
||||
// todo 待完善
|
||||
/* Long userId = LoginHelper.getUserId();
|
||||
if (!oldRectify.getRectifyUserId().equals(userId)) {
|
||||
throw new ServiceException("您没有权限修改该数据");
|
||||
}*/
|
||||
if (!oldRectify.getReviewStatus().equals(HseSafetyInspectionReviewTypeEnum.NOT_REVIEW.getValue())) {
|
||||
throw new ServiceException("该数据已审核,请勿重复操作");
|
||||
}
|
||||
HazardHiddenDangerRectify rectify = new HazardHiddenDangerRectify();
|
||||
BeanUtils.copyProperties(req, rectify);
|
||||
rectify.setId(oldRectify.getId());
|
||||
rectify.setRectifyDesc(req.getRectifyDesc());
|
||||
rectify.setRectifyFiles(req.getRectifyFiles());
|
||||
rectify.setRectifyTime(LocalDateTime.now());
|
||||
boolean update = this.updateById(rectify);
|
||||
if (!update) {
|
||||
@ -218,34 +210,32 @@ public class HazardHiddenDangerRectifyServiceImpl extends ServiceImpl<HazardHidd
|
||||
&& !reviewStatus.equals(HseSafetyInspectionReviewTypeEnum.UNPASS.getValue())) {
|
||||
throw new ServiceException("请选择复查状态");
|
||||
}
|
||||
HazardHiddenDangerRectify oldRectify = this.getById(id);
|
||||
if (oldRectify == null) {
|
||||
throw new ServiceException("未找到该数据");
|
||||
}
|
||||
Long userId = LoginHelper.getUserId();
|
||||
if (!oldRectify.getReviewUserId().equals(userId)) {
|
||||
throw new ServiceException("您没有权限审核该数据");
|
||||
}
|
||||
Long hiddenDangerId = oldRectify.getHiddenDangerId();
|
||||
// 判断是否为最新的一条
|
||||
Integer maxCount = this.lambdaQuery()
|
||||
.eq(HazardHiddenDangerRectify::getHiddenDangerId, hiddenDangerId)
|
||||
.select(HazardHiddenDangerRectify::getRectifyCount)
|
||||
.orderByDesc(HazardHiddenDangerRectify::getRectifyCount)
|
||||
.last("limit 1")
|
||||
.one()
|
||||
.getRectifyCount();
|
||||
if (!Objects.equals(maxCount, oldRectify.getRectifyCount())) {
|
||||
throw new ServiceException("请审核最新的一条整改记录");
|
||||
}
|
||||
HazardHiddenDanger hiddenDanger = hazardHiddenDangerService.getById(hiddenDangerId);
|
||||
HazardHiddenDanger hiddenDanger = hazardHiddenDangerService.getById(id);
|
||||
if (hiddenDanger == null) {
|
||||
throw new ServiceException("未找到该数据");
|
||||
}
|
||||
HazardHiddenDangerRectify oldRectify = this.lambdaQuery()
|
||||
.eq(HazardHiddenDangerRectify::getHiddenDangerId, id)
|
||||
.orderByDesc(HazardHiddenDangerRectify::getRectifyCount)
|
||||
.last("limit 1")
|
||||
.one();
|
||||
Long rectifyId = oldRectify.getId();
|
||||
Long userId = LoginHelper.getUserId();
|
||||
// todo 待完善
|
||||
/* if (!oldRectify.getReviewUserId().equals(userId)) {
|
||||
throw new ServiceException("您没有权限审核该数据");
|
||||
}*/
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
HazardHiddenDangerRectify rectify = new HazardHiddenDangerRectify();
|
||||
String reviewDesc = req.getReviewDesc();
|
||||
String reviewFiles = req.getReviewFiles();
|
||||
BeanUtils.copyProperties(req, rectify);
|
||||
rectify.setReviewTime(LocalDateTime.now());
|
||||
synchronized (("hd_" + hiddenDangerId).intern()) {
|
||||
rectify.setId(rectifyId);
|
||||
rectify.setReviewDesc(reviewDesc);
|
||||
rectify.setReviewFiles(reviewFiles);
|
||||
rectify.setReviewStatus(reviewStatus);
|
||||
rectify.setReviewTime(now);
|
||||
synchronized (("hd_" + id).intern()) {
|
||||
boolean update = this.updateById(rectify);
|
||||
if (!update) {
|
||||
throw new ServiceException("数据修改失败");
|
||||
@ -255,20 +245,24 @@ public class HazardHiddenDangerRectifyServiceImpl extends ServiceImpl<HazardHidd
|
||||
// 修改状态
|
||||
hiddenDanger.setStatus(HazardHiddenDanger.CLOSED);
|
||||
} else {
|
||||
// 修改状态
|
||||
hiddenDanger.setStatus(HazardHiddenDanger.RECTIFY);
|
||||
LocalDateTime rectificationDeadline = req.getRectificationDeadline();
|
||||
if (rectificationDeadline == null) {
|
||||
throw new ServiceException("请选择整改期限");
|
||||
}
|
||||
if (rectificationDeadline.isBefore(now)) {
|
||||
throw new ServiceException("整改期限不能小于当前时间");
|
||||
}
|
||||
// 修改状态
|
||||
hiddenDanger.setStatus(HazardHiddenDanger.RECTIFY);
|
||||
// 设置新的整改期限
|
||||
hiddenDanger.setRectifyTime(rectificationDeadline);
|
||||
// 生成新的整改
|
||||
HazardHiddenDangerRectify newRectify = new HazardHiddenDangerRectify();
|
||||
newRectify.setHiddenDangerId(hiddenDangerId);
|
||||
newRectify.setRectifyCount(maxCount + 1);
|
||||
newRectify.setHiddenDangerId(id);
|
||||
newRectify.setRectifyCount(oldRectify.getRectifyCount() + 1);
|
||||
newRectify.setReviewUserId(rectify.getReviewUserId());
|
||||
newRectify.setRectifyUserId(rectifyUserId != null ? rectifyUserId : oldRectify.getRectifyUserId());
|
||||
newRectify.setRectifyDeadline(rectificationDeadline);
|
||||
boolean save = this.save(newRectify);
|
||||
if (!save) {
|
||||
throw new ServiceException("数据保存失败");
|
||||
|
||||
@ -8,20 +8,25 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.safety.domain.HazardHiddenDanger;
|
||||
import org.dromara.safety.domain.HazardHiddenDangerRectify;
|
||||
import org.dromara.safety.domain.HazardRule;
|
||||
import org.dromara.safety.domain.bo.HazardHiddenDangerBo;
|
||||
import org.dromara.safety.domain.dto.EvaluateDto;
|
||||
import org.dromara.safety.domain.vo.HazardHiddenDangerRectifyVo;
|
||||
import org.dromara.safety.domain.vo.HazardHiddenDangerVo;
|
||||
import org.dromara.safety.domain.vo.HiddenDangerCountVo;
|
||||
import org.dromara.safety.mapper.HazardHiddenDangerMapper;
|
||||
import org.dromara.safety.mapper.HazardHiddenDangerRectifyMapper;
|
||||
import org.dromara.safety.service.IHazardHiddenDangerService;
|
||||
import org.dromara.safety.service.IHazardRuleService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
@ -43,6 +48,8 @@ public class HazardHiddenDangerServiceImpl extends ServiceImpl<HazardHiddenDange
|
||||
|
||||
private final IHazardRuleService hazardRuleService;
|
||||
|
||||
private final HazardHiddenDangerRectifyMapper hazardHiddenDangerRectifyMapper;
|
||||
|
||||
/**
|
||||
* 查询隐患信息
|
||||
*
|
||||
@ -51,7 +58,15 @@ public class HazardHiddenDangerServiceImpl extends ServiceImpl<HazardHiddenDange
|
||||
*/
|
||||
@Override
|
||||
public HazardHiddenDangerVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
HazardHiddenDangerVo dangerVo = baseMapper.selectVoById(id);
|
||||
if (dangerVo == null) {
|
||||
throw new ServiceException("未找到该数据");
|
||||
}
|
||||
List<HazardHiddenDangerRectifyVo> dangerRectifyVos = hazardHiddenDangerRectifyMapper.selectVoList(new LambdaQueryWrapper<>(HazardHiddenDangerRectify.class)
|
||||
.eq(HazardHiddenDangerRectify::getHiddenDangerId, id)
|
||||
.orderByAsc(HazardHiddenDangerRectify::getRectifyCount));
|
||||
dangerVo.setRectifyList(dangerRectifyVos);
|
||||
return dangerVo;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -195,6 +210,7 @@ public class HazardHiddenDangerServiceImpl extends ServiceImpl<HazardHiddenDange
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean evaluate(EvaluateDto dto) {
|
||||
HazardHiddenDanger hazardHiddenDanger = baseMapper.selectById(dto.getId());
|
||||
BeanUtil.copyProperties(dto, hazardHiddenDanger);
|
||||
@ -209,6 +225,20 @@ public class HazardHiddenDangerServiceImpl extends ServiceImpl<HazardHiddenDange
|
||||
} else if (responseUnit.equals("1")) {
|
||||
hazardHiddenDanger.setRectifyTime(now.plusMinutes(byId.getResponseTime()));
|
||||
}
|
||||
return baseMapper.updateById(hazardHiddenDanger) > 0;
|
||||
// 修改数据
|
||||
if (baseMapper.updateById(hazardHiddenDanger) <= 0) {
|
||||
throw new ServiceException("数据修改失败");
|
||||
}
|
||||
// 添加整改任务
|
||||
HazardHiddenDangerRectify rectify = new HazardHiddenDangerRectify();
|
||||
rectify.setHiddenDangerId(dto.getId());
|
||||
rectify.setRectifyDeadline(hazardHiddenDanger.getRectifyTime());
|
||||
rectify.setRectifyUserId(hazardHiddenDanger.getRectifyUserId());
|
||||
rectify.setReviewUserId(hazardHiddenDanger.getEvaluator());
|
||||
rectify.setRectifyCount(1);
|
||||
if (hazardHiddenDangerRectifyMapper.insert(rectify) <= 0) {
|
||||
throw new ServiceException("数据保存失败");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2106,3 +2106,16 @@ insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component,
|
||||
status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
values (1996413868087308295, '隐患整改情况导出', 1996413868087308290, '5', '#', '', 1, 0, 'F', '0', '0',
|
||||
'safety:hiddenDangerRectify:export', '#', 103, 1, sysdate(), null, null, '');
|
||||
|
||||
|
||||
CREATE TABLE `hazard_delay_task`
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY COMMENT '主键',
|
||||
`biz_type` VARCHAR(50) NOT NULL COMMENT '业务类型',
|
||||
`biz_id` BIGINT NOT NULL COMMENT '业务ID',
|
||||
`execute_time` DATETIME NOT NULL COMMENT '执行的时间点',
|
||||
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '任务状态 0未执行 1执行中 2执行成功 3执行失败',
|
||||
`retry_count` INT NOT NULL DEFAULT 0 COMMENT '重试次数',
|
||||
`max_retry` INT NOT NULL DEFAULT 3 COMMENT '最大重试次数',
|
||||
`fail_reason` VARCHAR(1024) NULL COMMENT '失败原因'
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user