危大工程-技术交底,过程监控
This commit is contained in:
@ -311,13 +311,11 @@ springdoc:
|
||||
packages-to-scan: org.dromara.ai
|
||||
- group: 31.投标管理模块
|
||||
packages-to-scan: org.dromara.bidding
|
||||
- group: 33.机械模块
|
||||
packages-to-scan: org.dromara.mechanical.jxgl
|
||||
- group: 32.设备模块
|
||||
packages-to-scan: org.dromara.device
|
||||
- group: 33.摄像头模块
|
||||
packages-to-scan: org.dromara.other
|
||||
- group: 34.机械安全模块
|
||||
- group: 34.机械模块
|
||||
packages-to-scan: org.dromara.mechanical
|
||||
# knife4j的增强配置,不需要增强可以不配
|
||||
knife4j:
|
||||
|
||||
@ -61,8 +61,7 @@ public class JxAqjcglVo implements Serializable {
|
||||
/**
|
||||
* 检查类型
|
||||
*/
|
||||
@ExcelProperty(value = "检查类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "jx_jclx")
|
||||
@ExcelProperty(value = "检查类型")
|
||||
private String inspectionType;
|
||||
|
||||
/**
|
||||
@ -101,8 +100,7 @@ public class JxAqjcglVo implements Serializable {
|
||||
/**
|
||||
* 参与人(多个用逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "参与人", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个用逗号分隔")
|
||||
@ExcelProperty(value = "参与人")
|
||||
private String participants;
|
||||
|
||||
/**
|
||||
@ -138,21 +136,19 @@ public class JxAqjcglVo implements Serializable {
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
@ExcelProperty(value = "设备类型", converter = ExcelDictConvert.class)
|
||||
@ExcelProperty(value = "设备类型")
|
||||
private String equipmentType;
|
||||
|
||||
/**
|
||||
* 检查结果
|
||||
*/
|
||||
@ExcelProperty(value = "检查结果", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "jx_jcjg")
|
||||
@ExcelProperty(value = "检查结果")
|
||||
private String inspectionResult;
|
||||
|
||||
/**
|
||||
* 风险等级
|
||||
*/
|
||||
@ExcelProperty(value = "风险等级", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "jx_fxdj")
|
||||
@ExcelProperty(value = "风险等级")
|
||||
private String riskGrade;
|
||||
|
||||
/**
|
||||
|
||||
@ -2,6 +2,7 @@ package org.dromara.mechanical.jxgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.TableDataInfo;
|
||||
@ -11,8 +12,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.mechanical.jxgl.domain.JxGzwx;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo;
|
||||
import org.dromara.mechanical.jxgl.service.IJxGzwxService;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxGzwxJlBo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
@ -22,9 +26,7 @@ import org.dromara.mechanical.jxgl.service.IJxGzwxJlService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 机械故障维修记录Service业务层处理
|
||||
@ -39,6 +41,7 @@ public class JxGzwxJlServiceImpl extends ServiceImpl<JxGzwxJlMapper, JxGzwxJl> i
|
||||
private final JxGzwxJlMapper baseMapper;
|
||||
|
||||
private final IJxGzwxService jxGzwxService;
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
/**
|
||||
* 查询机械故障维修记录
|
||||
@ -154,6 +157,21 @@ public class JxGzwxJlServiceImpl extends ServiceImpl<JxGzwxJlMapper, JxGzwxJl> i
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
JxGzwxJlVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +55,6 @@ public class JxSgxxjlbBo extends BaseEntity {
|
||||
/**
|
||||
* 设备台账id
|
||||
*/
|
||||
@NotBlank(message = "设备台账id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long equipmentId;
|
||||
|
||||
/**
|
||||
|
||||
@ -40,29 +40,25 @@ public class JxSgxxjlbVo implements Serializable {
|
||||
/**
|
||||
* 事故编号(如SGJL-20230620-001)
|
||||
*/
|
||||
@ExcelProperty(value = "事故编号", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=SGJL-20230620-001")
|
||||
@ExcelProperty(value = "事故编号")
|
||||
private String accidentCode;
|
||||
|
||||
/**
|
||||
* 事故等级(下拉选择)
|
||||
*/
|
||||
@ExcelProperty(value = "事故等级", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "下=拉选择")
|
||||
@ExcelProperty(value = "事故等级")
|
||||
private String accidentLevel;
|
||||
|
||||
/**
|
||||
* 事故类型(下拉选择)
|
||||
*/
|
||||
@ExcelProperty(value = "事故类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "下=拉选择")
|
||||
@ExcelProperty(value = "事故类型")
|
||||
private String accidentType;
|
||||
|
||||
/**
|
||||
* 设备名称(下拉选择)
|
||||
*/
|
||||
@ExcelProperty(value = "设备名称", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "下=拉选择")
|
||||
@ExcelProperty(value = "设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
@ -86,22 +82,19 @@ public class JxSgxxjlbVo implements Serializable {
|
||||
/**
|
||||
* 事故描述(详细经过)
|
||||
*/
|
||||
@ExcelProperty(value = "事故描述", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "详=细经过")
|
||||
@ExcelProperty(value = "事故描述")
|
||||
private String accidentDescription;
|
||||
|
||||
/**
|
||||
* 直接损失金额(元)
|
||||
*/
|
||||
@ExcelProperty(value = "直接损失金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "元=")
|
||||
@ExcelProperty(value = "直接损失金额")
|
||||
private BigDecimal directLoss;
|
||||
|
||||
/**
|
||||
* 间接损失金额(元)
|
||||
*/
|
||||
@ExcelProperty(value = "间接损失金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "元=")
|
||||
@ExcelProperty(value = "间接损失金额")
|
||||
private BigDecimal indirectLoss;
|
||||
|
||||
/**
|
||||
@ -113,8 +106,7 @@ public class JxSgxxjlbVo implements Serializable {
|
||||
/**
|
||||
* 人员伤亡情况(如有)
|
||||
*/
|
||||
@ExcelProperty(value = "人员伤亡情况", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "如=有")
|
||||
@ExcelProperty(value = "人员伤亡情况")
|
||||
private String casualtySituation;
|
||||
|
||||
/**
|
||||
|
||||
@ -11,7 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo;
|
||||
@ -20,9 +22,7 @@ import org.dromara.mechanical.jxsgjl.mapper.JxSgxxjlbMapper;
|
||||
import org.dromara.mechanical.jxsgjl.service.IJxSgxxjlbService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录Service业务层处理
|
||||
@ -36,6 +36,9 @@ public class JxSgxxjlbServiceImpl extends ServiceImpl<JxSgxxjlbMapper, JxSgxxjlb
|
||||
|
||||
private final JxSgxxjlbMapper baseMapper;
|
||||
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械事故信息记录
|
||||
*
|
||||
@ -153,6 +156,21 @@ public class JxSgxxjlbServiceImpl extends ServiceImpl<JxSgxxjlbMapper, JxSgxxjlb
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
JxSgxxjlbVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxaqgl.domain.MonthDateRange;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglService;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxZgxx;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo;
|
||||
@ -23,6 +24,7 @@ import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.vo.*;
|
||||
import org.dromara.mechanical.jxzgbh.service.IJxFcxxService;
|
||||
import org.dromara.mechanical.jxzgbh.service.IJxZgxxService;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh;
|
||||
@ -31,10 +33,7 @@ import org.dromara.mechanical.jxzgbh.service.IJxYhzgbhService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 机械隐患整改与闭环Service业务层处理
|
||||
@ -56,6 +55,9 @@ public class JxYhzgbhServiceImpl extends ServiceImpl<JxYhzgbhMapper, JxYhzgbh> i
|
||||
|
||||
private final IJxAqjcglService jxAqjcglService;
|
||||
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械隐患整改与闭环
|
||||
*
|
||||
@ -185,6 +187,21 @@ public class JxYhzgbhServiceImpl extends ServiceImpl<JxYhzgbhMapper, JxYhzgbh> i
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
JxYhzgbhVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -45,6 +46,16 @@ public class HseDangerArchiveController extends BaseController {
|
||||
return hseDangerArchiveService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询技术交底和过程监控文件
|
||||
* @param id 危大工程id
|
||||
*/
|
||||
@GetMapping("/getJsjdYGcjk/{id}")
|
||||
public R<HseJsjdYuJkjcVo> list(@PathVariable Long id) {
|
||||
return R.ok(hseDangerArchiveService.getJsjdYGcjk(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出危大工程档案列表
|
||||
*/
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package org.dromara.safety.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HseJsjdYuJkjcVo {
|
||||
/**
|
||||
* 技术交底文件
|
||||
*/
|
||||
private String jsjdFile;
|
||||
|
||||
|
||||
/**
|
||||
* 过程监控文件
|
||||
*/
|
||||
private String gcjkFile;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package org.dromara.safety.enums;
|
||||
|
||||
public enum AqEnums {
|
||||
|
||||
AQJDZT_S("是否交底", "1"),
|
||||
AQJDZT_F("是否交底", "2"),
|
||||
AQWXJX_S("是否存在危险迹象", "1"),
|
||||
AQWXJX_F("是否存在危险迹象", "2");
|
||||
|
||||
|
||||
|
||||
private final String TypeName;
|
||||
|
||||
private final String TypeValue;
|
||||
|
||||
|
||||
public String getTypeName() {
|
||||
return TypeName;
|
||||
}
|
||||
public String getTypeValue() {
|
||||
return TypeValue;
|
||||
}
|
||||
|
||||
AqEnums(String TypeName, String TypeValue) {
|
||||
this.TypeName = TypeName;
|
||||
this.TypeValue = TypeValue;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,133 @@
|
||||
package org.dromara.safety.gcjkjl.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.safety.gcjkjl.domain.vo.JkjcHeadVo;
|
||||
import org.dromara.safety.jsjd.domain.bo.HseJsjdBo;
|
||||
import org.dromara.safety.jsjd.domain.vo.HseJsjdVo;
|
||||
import org.dromara.safety.jsjd.service.IHseJsjdService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo;
|
||||
import org.dromara.safety.gcjkjl.domain.bo.HseGcjkBo;
|
||||
import org.dromara.safety.gcjkjl.service.IHseGcjkService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/gcjkjl/gcjk")
|
||||
public class HseGcjkController extends BaseController {
|
||||
|
||||
private final IHseGcjkService hseGcjkService;
|
||||
|
||||
private final IHseJsjdService hseJsjdService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询安全技术交底列表
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:list")
|
||||
@GetMapping("/getlist")
|
||||
public TableDataInfo<HseJsjdVo> list(HseJsjdBo bo, PageQuery pageQuery) {
|
||||
return hseJsjdService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询安全-过程监控记录列表
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<HseGcjkVo> list(HseGcjkBo bo, PageQuery pageQuery) {
|
||||
return hseGcjkService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询安全-过程监控记录头部数据
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:list")
|
||||
@GetMapping("/listHead")
|
||||
public R<JkjcHeadVo> list(HseGcjkBo bo) {
|
||||
return R.ok(hseGcjkService.listHead(bo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出安全-过程监控记录列表
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:export")
|
||||
@Log(title = "安全-过程监控记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HseGcjkBo bo, HttpServletResponse response) {
|
||||
List<HseGcjkVo> list = hseGcjkService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "安全-过程监控记录", HseGcjkVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取安全-过程监控记录详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<HseGcjkVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(hseGcjkService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增安全-过程监控记录
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:add")
|
||||
@Log(title = "安全-过程监控记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody HseGcjkBo bo) {
|
||||
return toAjax(hseGcjkService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改安全-过程监控记录
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:edit")
|
||||
@Log(title = "安全-过程监控记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody HseGcjkBo bo) {
|
||||
return toAjax(hseGcjkService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除安全-过程监控记录
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("gcjkjl:gcjk:remove")
|
||||
@Log(title = "安全-过程监控记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(hseGcjkService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,196 @@
|
||||
package org.dromara.safety.gcjkjl.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录对象 hse_gcjk
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("hse_gcjk")
|
||||
public class HseGcjk extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 监控编号
|
||||
*/
|
||||
private String monitorNo;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 危大工程ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 危大工程名称
|
||||
*/
|
||||
private String deName;
|
||||
|
||||
/**
|
||||
* 监控内容
|
||||
*/
|
||||
private String monitorContent;
|
||||
|
||||
/**
|
||||
* 监控频次
|
||||
*/
|
||||
private String monitorFrequency;
|
||||
|
||||
/**
|
||||
* 监控责任人姓名
|
||||
*/
|
||||
private String monitorResponsiblePerson;
|
||||
|
||||
/**
|
||||
* 过程记录日期
|
||||
*/
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 是否存在危险迹象(1:是,0:否)
|
||||
*/
|
||||
private String hasHazardSign;
|
||||
|
||||
/**
|
||||
* 施工状态描述
|
||||
*/
|
||||
private String constructionStatus;
|
||||
|
||||
/**
|
||||
* 关键工序完成情况
|
||||
*/
|
||||
private String keyProcessProgress;
|
||||
|
||||
/**
|
||||
* 是否旁站(1:是,0:否)
|
||||
*/
|
||||
private String isOnSiteSupervision;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 整改期限
|
||||
*/
|
||||
private LocalDate abarbeitungQx;
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
private String abarbeitungRen;
|
||||
|
||||
/**
|
||||
* 整改要求
|
||||
*/
|
||||
private String abarbeitungYq;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站记录内容
|
||||
*/
|
||||
private String supervisionJl;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站结束时间
|
||||
*/
|
||||
private LocalDateTime supervisionJs;
|
||||
|
||||
/**
|
||||
* 旁站结束时间
|
||||
*/
|
||||
private LocalDateTime supervisionKs;
|
||||
|
||||
/**
|
||||
* 问题描述
|
||||
*/
|
||||
private String problemDescription;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站文件
|
||||
*/
|
||||
private String supervisionFile;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站人
|
||||
*/
|
||||
private String supervisionRen;
|
||||
|
||||
/**
|
||||
* 旁站单位
|
||||
*/
|
||||
private String supervisionDw;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 验收意见
|
||||
*/
|
||||
private String inspectionOpinion;
|
||||
|
||||
/**
|
||||
* 验收人姓名
|
||||
*/
|
||||
private String inspector;
|
||||
|
||||
/**
|
||||
* 验收时间
|
||||
*/
|
||||
private LocalDateTime inspectionTime;
|
||||
|
||||
/**
|
||||
* 审核标志
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,189 @@
|
||||
package org.dromara.safety.gcjkjl.domain.bo;
|
||||
|
||||
import org.dromara.safety.gcjkjl.domain.HseGcjk;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录业务对象 hse_gcjk
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = HseGcjk.class, reverseConvertGenerate = false)
|
||||
public class HseGcjkBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 监控编号
|
||||
*/
|
||||
@NotBlank(message = "监控编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String monitorNo;
|
||||
|
||||
/**
|
||||
* 危大工程ID
|
||||
*/
|
||||
@NotNull(message = "危大工程ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 危大工程名称
|
||||
*/
|
||||
private String deName;
|
||||
|
||||
/**
|
||||
* 监控内容
|
||||
*/
|
||||
@NotBlank(message = "监控内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String monitorContent;
|
||||
|
||||
/**
|
||||
* 监控频次
|
||||
*/
|
||||
@NotBlank(message = "监控频次不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String monitorFrequency;
|
||||
|
||||
/**
|
||||
* 监控责任人姓名
|
||||
*/
|
||||
@NotBlank(message = "监控责任人姓名不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String monitorResponsiblePerson;
|
||||
|
||||
/**
|
||||
* 过程记录日期
|
||||
*/
|
||||
@NotNull(message = "过程记录日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 是否存在危险迹象(1:是,0:否)
|
||||
*/
|
||||
@NotNull(message = "是否存在危险迹象(1:是,0:否)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String hasHazardSign;
|
||||
|
||||
/**
|
||||
* 施工状态描述
|
||||
*/
|
||||
@NotBlank(message = "施工状态描述不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String constructionStatus;
|
||||
|
||||
/**
|
||||
* 关键工序完成情况
|
||||
*/
|
||||
private String keyProcessProgress;
|
||||
|
||||
/**
|
||||
* 是否旁站(1:是,0:否)
|
||||
*/
|
||||
@NotNull(message = "是否旁站(1:是,0:否)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String isOnSiteSupervision;
|
||||
|
||||
/**
|
||||
* 验收意见
|
||||
*/
|
||||
private String inspectionOpinion;
|
||||
|
||||
/**
|
||||
* 验收人姓名
|
||||
*/
|
||||
private String inspector;
|
||||
|
||||
/**
|
||||
* 验收时间
|
||||
*/
|
||||
private LocalDateTime inspectionTime;
|
||||
|
||||
/**
|
||||
* 审核标志
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 整改期限
|
||||
*/
|
||||
private LocalDate abarbeitungQx;
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
private String abarbeitungRen;
|
||||
|
||||
/**
|
||||
* 整改要求
|
||||
*/
|
||||
private String abarbeitungYq;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站记录内容
|
||||
*/
|
||||
private String supervisionJl;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站结束时间
|
||||
*/
|
||||
private LocalDateTime supervisionJs;
|
||||
|
||||
/**
|
||||
* 旁站结束时间
|
||||
*/
|
||||
private LocalDateTime supervisionKs;
|
||||
|
||||
/**
|
||||
* 问题描述
|
||||
*/
|
||||
private String problemDescription;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站文件
|
||||
*/
|
||||
private String supervisionFile;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站人
|
||||
*/
|
||||
private String supervisionRen;
|
||||
|
||||
/**
|
||||
* 旁站单位
|
||||
*/
|
||||
private String supervisionDw;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,209 @@
|
||||
package org.dromara.safety.gcjkjl.domain.vo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.safety.gcjkjl.domain.HseGcjk;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录视图对象 hse_gcjk
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = HseGcjk.class)
|
||||
public class HseGcjkVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 监控编号
|
||||
*/
|
||||
@ExcelProperty(value = "监控编号")
|
||||
private String monitorNo;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 危大工程ID
|
||||
*/
|
||||
@ExcelProperty(value = "危大工程ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 危大工程名称
|
||||
*/
|
||||
@ExcelProperty(value = "危大工程名称")
|
||||
private String deName;
|
||||
|
||||
/**
|
||||
* 监控内容
|
||||
*/
|
||||
@ExcelProperty(value = "监控内容")
|
||||
private String monitorContent;
|
||||
|
||||
/**
|
||||
* 监控频次
|
||||
*/
|
||||
@ExcelProperty(value = "监控频次")
|
||||
private String monitorFrequency;
|
||||
|
||||
/**
|
||||
* 监控责任人姓名
|
||||
*/
|
||||
@ExcelProperty(value = "监控责任人姓名")
|
||||
private String monitorResponsiblePerson;
|
||||
|
||||
/**
|
||||
* 过程记录日期
|
||||
*/
|
||||
@ExcelProperty(value = "过程记录日期")
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 是否存在危险迹象(1:是,0:否)
|
||||
*/
|
||||
@ExcelProperty(value = "是否存在危险迹象", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "1=:是,0:否")
|
||||
private String hasHazardSign;
|
||||
|
||||
/**
|
||||
* 施工状态描述
|
||||
*/
|
||||
@ExcelProperty(value = "施工状态描述")
|
||||
private String constructionStatus;
|
||||
|
||||
/**
|
||||
* 关键工序完成情况
|
||||
*/
|
||||
@ExcelProperty(value = "关键工序完成情况")
|
||||
private String keyProcessProgress;
|
||||
|
||||
/**
|
||||
* 是否旁站(1:是,0:否)
|
||||
*/
|
||||
@ExcelProperty(value = "是否旁站", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "1=:是,0:否")
|
||||
private String isOnSiteSupervision;
|
||||
|
||||
/**
|
||||
* 验收意见
|
||||
*/
|
||||
@ExcelProperty(value = "验收意见")
|
||||
private String inspectionOpinion;
|
||||
|
||||
/**
|
||||
* 验收人姓名
|
||||
*/
|
||||
@ExcelProperty(value = "验收人姓名")
|
||||
private String inspector;
|
||||
|
||||
/**
|
||||
* 验收时间
|
||||
*/
|
||||
@ExcelProperty(value = "验收时间")
|
||||
private LocalDateTime inspectionTime;
|
||||
|
||||
/**
|
||||
* 审核标志
|
||||
*/
|
||||
@ExcelProperty(value = "审核标志")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 整改期限
|
||||
*/
|
||||
private LocalDate abarbeitungQx;
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
private String abarbeitungRen;
|
||||
|
||||
/**
|
||||
* 整改要求
|
||||
*/
|
||||
private String abarbeitungYq;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站记录内容
|
||||
*/
|
||||
private String supervisionJl;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站结束时间
|
||||
*/
|
||||
private LocalDateTime supervisionJs;
|
||||
|
||||
/**
|
||||
* 旁站结束时间
|
||||
*/
|
||||
private LocalDateTime supervisionKs;
|
||||
|
||||
/**
|
||||
* 问题描述
|
||||
*/
|
||||
private String problemDescription;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站文件
|
||||
*/
|
||||
private String supervisionFile;
|
||||
|
||||
|
||||
/**
|
||||
* 旁站人
|
||||
*/
|
||||
private String supervisionRen;
|
||||
|
||||
/**
|
||||
* 旁站单位
|
||||
*/
|
||||
private String supervisionDw;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package org.dromara.safety.gcjkjl.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class JkjcHeadVo {
|
||||
|
||||
/**
|
||||
* 监控总数
|
||||
*/
|
||||
private Long zs = 0L;
|
||||
|
||||
/**
|
||||
*存在危险迹象
|
||||
*/
|
||||
private Long czwxjx = 0L;
|
||||
|
||||
/**
|
||||
* 不存在危险迹象
|
||||
*/
|
||||
private Long bczwxjx = 0L;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.safety.gcjkjl.mapper;
|
||||
|
||||
import org.dromara.safety.gcjkjl.domain.HseGcjk;
|
||||
import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface HseGcjkMapper extends BaseMapperPlus<HseGcjk, HseGcjkVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package org.dromara.safety.gcjkjl.service;
|
||||
|
||||
import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo;
|
||||
import org.dromara.safety.gcjkjl.domain.bo.HseGcjkBo;
|
||||
import org.dromara.safety.gcjkjl.domain.HseGcjk;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.safety.gcjkjl.domain.vo.JkjcHeadVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface IHseGcjkService extends IService<HseGcjk>{
|
||||
|
||||
/**
|
||||
* 查询安全-过程监控记录
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 安全-过程监控记录
|
||||
*/
|
||||
HseGcjkVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询安全-过程监控记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 安全-过程监控记录分页列表
|
||||
*/
|
||||
TableDataInfo<HseGcjkVo> queryPageList(HseGcjkBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的安全-过程监控记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 安全-过程监控记录列表
|
||||
*/
|
||||
List<HseGcjkVo> queryList(HseGcjkBo bo);
|
||||
|
||||
/**
|
||||
* 新增安全-过程监控记录
|
||||
*
|
||||
* @param bo 安全-过程监控记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(HseGcjkBo bo);
|
||||
|
||||
/**
|
||||
* 修改安全-过程监控记录
|
||||
*
|
||||
* @param bo 安全-过程监控记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(HseGcjkBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除安全-过程监控记录信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
JkjcHeadVo listHead(HseGcjkBo bo);
|
||||
}
|
||||
@ -0,0 +1,187 @@
|
||||
package org.dromara.safety.gcjkjl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.safety.enums.AqEnums;
|
||||
import org.dromara.safety.gcjkjl.domain.vo.JkjcHeadVo;
|
||||
import org.dromara.safety.jsjd.domain.vo.HseJsjdVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.safety.gcjkjl.domain.bo.HseGcjkBo;
|
||||
import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo;
|
||||
import org.dromara.safety.gcjkjl.domain.HseGcjk;
|
||||
import org.dromara.safety.gcjkjl.mapper.HseGcjkMapper;
|
||||
import org.dromara.safety.gcjkjl.service.IHseGcjkService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 安全-过程监控记录Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class HseGcjkServiceImpl extends ServiceImpl<HseGcjkMapper, HseGcjk> implements IHseGcjkService {
|
||||
|
||||
private final HseGcjkMapper baseMapper;
|
||||
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询安全-过程监控记录
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 安全-过程监控记录
|
||||
*/
|
||||
@Override
|
||||
public HseGcjkVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询安全-过程监控记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 安全-过程监控记录分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<HseGcjkVo> queryPageList(HseGcjkBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<HseGcjk> lqw = buildQueryWrapper(bo);
|
||||
Page<HseGcjkVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的安全-过程监控记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 安全-过程监控记录列表
|
||||
*/
|
||||
@Override
|
||||
public List<HseGcjkVo> queryList(HseGcjkBo bo) {
|
||||
LambdaQueryWrapper<HseGcjk> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<HseGcjk> buildQueryWrapper(HseGcjkBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<HseGcjk> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(HseGcjk::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMonitorNo()), HseGcjk::getMonitorNo, bo.getMonitorNo());
|
||||
lqw.eq(bo.getMasterId() != null, HseGcjk::getMasterId, bo.getMasterId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDeName()), HseGcjk::getDeName, bo.getDeName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMonitorContent()), HseGcjk::getMonitorContent, bo.getMonitorContent());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMonitorFrequency()), HseGcjk::getMonitorFrequency, bo.getMonitorFrequency());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMonitorResponsiblePerson()), HseGcjk::getMonitorResponsiblePerson, bo.getMonitorResponsiblePerson());
|
||||
lqw.eq(bo.getRecordDate() != null, HseGcjk::getRecordDate, bo.getRecordDate());
|
||||
lqw.eq(bo.getHasHazardSign() != null, HseGcjk::getHasHazardSign, bo.getHasHazardSign());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConstructionStatus()), HseGcjk::getConstructionStatus, bo.getConstructionStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getKeyProcessProgress()), HseGcjk::getKeyProcessProgress, bo.getKeyProcessProgress());
|
||||
lqw.eq(bo.getIsOnSiteSupervision() != null, HseGcjk::getIsOnSiteSupervision, bo.getIsOnSiteSupervision());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionOpinion()), HseGcjk::getInspectionOpinion, bo.getInspectionOpinion());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspector()), HseGcjk::getInspector, bo.getInspector());
|
||||
lqw.eq(bo.getInspectionTime() != null, HseGcjk::getInspectionTime, bo.getInspectionTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), HseGcjk::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), HseGcjk::getFileId, bo.getFileId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增安全-过程监控记录
|
||||
*
|
||||
* @param bo 安全-过程监控记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(HseGcjkBo bo) {
|
||||
HseGcjk add = MapstructUtils.convert(bo, HseGcjk.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("ANGCJC-");
|
||||
add.setMonitorNo(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改安全-过程监控记录
|
||||
*
|
||||
* @param bo 安全-过程监控记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(HseGcjkBo bo) {
|
||||
HseGcjk update = MapstructUtils.convert(bo, HseGcjk.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(HseGcjk entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除安全-过程监控记录信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
HseGcjkVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JkjcHeadVo listHead(HseGcjkBo bo) {
|
||||
JkjcHeadVo jkjcHeadVo = new JkjcHeadVo();
|
||||
if (bo.getProjectId() == null) throw new RuntimeException("项目不能为空");
|
||||
List<HseGcjk> hseGcjks = baseMapper.selectList(new LambdaQueryWrapper<HseGcjk>().eq(HseGcjk::getProjectId, bo.getProjectId()));
|
||||
if (hseGcjks != null && hseGcjks.size() > 0) {
|
||||
jkjcHeadVo.setZs(Long.valueOf(hseGcjks.size()));
|
||||
jkjcHeadVo.setBczwxjx(hseGcjks.stream().filter(hseGcjk -> hseGcjk.getHasHazardSign().equals(AqEnums.AQWXJX_F.getTypeValue())).count());
|
||||
jkjcHeadVo.setCzwxjx(hseGcjks.stream().filter(hseGcjk -> hseGcjk.getHasHazardSign().equals(AqEnums.AQWXJX_S.getTypeValue())).count());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return jkjcHeadVo;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,131 @@
|
||||
package org.dromara.safety.jsjd.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.safety.domain.bo.HseSpecialPlanBo;
|
||||
import org.dromara.safety.domain.vo.HseSpecialPlanVo;
|
||||
import org.dromara.safety.jsjd.domain.vo.JsjgHeadVo;
|
||||
import org.dromara.safety.service.IHseSpecialPlanService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.safety.jsjd.domain.vo.HseJsjdVo;
|
||||
import org.dromara.safety.jsjd.domain.bo.HseJsjdBo;
|
||||
import org.dromara.safety.jsjd.service.IHseJsjdService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 安全技术交底
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/jsjd/jsjd")
|
||||
public class HseJsjdController extends BaseController {
|
||||
|
||||
private final IHseJsjdService hseJsjdService;
|
||||
|
||||
|
||||
private final IHseSpecialPlanService hseSpecialPlanService;
|
||||
|
||||
/**
|
||||
* 查询危大工程专项施工方案列表
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:list")
|
||||
@GetMapping("/getlist")
|
||||
public TableDataInfo<HseSpecialPlanVo> list(HseSpecialPlanBo bo, PageQuery pageQuery) {
|
||||
return hseSpecialPlanService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询安全技术交底列表
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<HseJsjdVo> list(HseJsjdBo bo, PageQuery pageQuery) {
|
||||
return hseJsjdService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询安全技术交底头部数据
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:list")
|
||||
@GetMapping("/listHead")
|
||||
public R<JsjgHeadVo> list(HseJsjdBo bo) {
|
||||
return R.ok(hseJsjdService.listHead(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出安全技术交底列表
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:export")
|
||||
@Log(title = "安全技术交底", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HseJsjdBo bo, HttpServletResponse response) {
|
||||
List<HseJsjdVo> list = hseJsjdService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "安全技术交底", HseJsjdVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取安全技术交底详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<HseJsjdVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(hseJsjdService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增安全技术交底
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:add")
|
||||
@Log(title = "安全技术交底", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody HseJsjdBo bo) {
|
||||
return toAjax(hseJsjdService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改安全技术交底
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:edit")
|
||||
@Log(title = "安全技术交底", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody HseJsjdBo bo) {
|
||||
return toAjax(hseJsjdService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除安全技术交底
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("jsjd:jsjd:remove")
|
||||
@Log(title = "安全技术交底", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(hseJsjdService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,108 @@
|
||||
package org.dromara.safety.jsjd.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 安全技术交底对象 hse_jsjd
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("hse_jsjd")
|
||||
public class HseJsjd extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 交底编号
|
||||
*/
|
||||
private String disclosureNo;
|
||||
|
||||
/**
|
||||
* 危大工程ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 危大工程名称
|
||||
*/
|
||||
private String deName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 交底方式
|
||||
*/
|
||||
private String disclosureMethod;
|
||||
|
||||
/**
|
||||
* 交底日期
|
||||
*/
|
||||
private LocalDate disclosureDate;
|
||||
|
||||
/**
|
||||
* 交底地点
|
||||
*/
|
||||
private String disclosurePlace;
|
||||
|
||||
/**
|
||||
* 交底人
|
||||
*/
|
||||
private String disclosurePerson;
|
||||
|
||||
/**
|
||||
* 交底对象(多个)
|
||||
*/
|
||||
private String disclosureObjects;
|
||||
|
||||
/**
|
||||
* 关键风险提示
|
||||
*/
|
||||
private String keyRiskTips;
|
||||
|
||||
/**
|
||||
* 安全注意事项
|
||||
*/
|
||||
private String safetyNotes;
|
||||
|
||||
/**
|
||||
* 交底状态
|
||||
*/
|
||||
private String presentationState;
|
||||
|
||||
/**
|
||||
* 审核标志
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 应急措施说明
|
||||
*/
|
||||
private String outburstExplain;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
package org.dromara.safety.jsjd.domain.bo;
|
||||
|
||||
import org.dromara.safety.jsjd.domain.HseJsjd;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 安全技术交底业务对象 hse_jsjd
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = HseJsjd.class, reverseConvertGenerate = false)
|
||||
public class HseJsjdBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 交底编号
|
||||
*/
|
||||
private String disclosureNo;
|
||||
|
||||
/**
|
||||
* 危大工程ID
|
||||
*/
|
||||
@NotNull(message = "专项方案管理ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 危大工程名称
|
||||
*/
|
||||
private String deName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 交底方式
|
||||
*/
|
||||
@NotBlank(message = "交底方式不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String disclosureMethod;
|
||||
|
||||
/**
|
||||
* 交底日期
|
||||
*/
|
||||
@NotNull(message = "交底日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate disclosureDate;
|
||||
|
||||
/**
|
||||
* 交底地点
|
||||
*/
|
||||
@NotBlank(message = "交底地点不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String disclosurePlace;
|
||||
|
||||
/**
|
||||
* 交底人
|
||||
*/
|
||||
@NotNull(message = "交底人不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String disclosurePerson;
|
||||
|
||||
/**
|
||||
* 交底对象(多个)
|
||||
*/
|
||||
@NotBlank(message = "交底对象(多个)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String disclosureObjects;
|
||||
|
||||
/**
|
||||
* 关键风险提示
|
||||
*/
|
||||
@NotBlank(message = "关键风险提示不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String keyRiskTips;
|
||||
|
||||
/**
|
||||
* 安全注意事项
|
||||
*/
|
||||
@NotBlank(message = "安全注意事项不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String safetyNotes;
|
||||
|
||||
/**
|
||||
* 交底状态
|
||||
*/
|
||||
@NotBlank(message = "交底状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String presentationState;
|
||||
|
||||
/**
|
||||
* 审核标志
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 应急措施说明
|
||||
*/
|
||||
@NotBlank(message = "应急措施说明不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String outburstExplain;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,135 @@
|
||||
package org.dromara.safety.jsjd.domain.vo;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.safety.jsjd.domain.HseJsjd;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 安全技术交底视图对象 hse_jsjd
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = HseJsjd.class)
|
||||
public class HseJsjdVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 交底编号
|
||||
*/
|
||||
@ExcelProperty(value = "交底编号")
|
||||
private String disclosureNo;
|
||||
|
||||
/**
|
||||
* 危大工程ID
|
||||
*/
|
||||
@ExcelProperty(value = "专项方案管理ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 危大工程名称
|
||||
*/
|
||||
private String deName;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
@ExcelProperty(value = "项目id")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 交底方式
|
||||
*/
|
||||
@ExcelProperty(value = "交底方式")
|
||||
private String disclosureMethod;
|
||||
|
||||
/**
|
||||
* 交底日期
|
||||
*/
|
||||
@ExcelProperty(value = "交底日期")
|
||||
private LocalDate disclosureDate;
|
||||
|
||||
/**
|
||||
* 交底地点
|
||||
*/
|
||||
@ExcelProperty(value = "交底地点")
|
||||
private String disclosurePlace;
|
||||
|
||||
/**
|
||||
* 交底人
|
||||
*/
|
||||
@ExcelProperty(value = "交底人")
|
||||
private String disclosurePerson;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 交底对象(多个)
|
||||
*/
|
||||
@ExcelProperty(value = "交底对象(多个)")
|
||||
private String disclosureObjects;
|
||||
|
||||
/**
|
||||
* 关键风险提示
|
||||
*/
|
||||
@ExcelProperty(value = "关键风险提示")
|
||||
private String keyRiskTips;
|
||||
|
||||
/**
|
||||
* 安全注意事项
|
||||
*/
|
||||
@ExcelProperty(value = "安全注意事项")
|
||||
private String safetyNotes;
|
||||
|
||||
/**
|
||||
* 交底状态
|
||||
*/
|
||||
@ExcelProperty(value = "交底状态")
|
||||
private String presentationState;
|
||||
|
||||
/**
|
||||
* 审核标志
|
||||
*/
|
||||
@ExcelProperty(value = "审核标志")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 应急措施说明
|
||||
*/
|
||||
@ExcelProperty(value = "应急措施说明")
|
||||
private String outburstExplain;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package org.dromara.safety.jsjd.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class JsjgHeadVo {
|
||||
|
||||
/**
|
||||
* 危大工程总数
|
||||
*/
|
||||
private Long wczs = 0L;
|
||||
|
||||
/**
|
||||
* 技术交底 总数
|
||||
*/
|
||||
private Long jdzs = 0L;
|
||||
|
||||
/**
|
||||
* 技术交底 已完成
|
||||
*/
|
||||
private Long jdywc = 0L;
|
||||
|
||||
/**
|
||||
* 技术交底 未完成
|
||||
*/
|
||||
private Long jdwwc = 0L;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.safety.jsjd.mapper;
|
||||
|
||||
import org.dromara.safety.jsjd.domain.HseJsjd;
|
||||
import org.dromara.safety.jsjd.domain.vo.HseJsjdVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 安全技术交底Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface HseJsjdMapper extends BaseMapperPlus<HseJsjd, HseJsjdVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package org.dromara.safety.jsjd.service;
|
||||
|
||||
import org.dromara.safety.jsjd.domain.vo.HseJsjdVo;
|
||||
import org.dromara.safety.jsjd.domain.bo.HseJsjdBo;
|
||||
import org.dromara.safety.jsjd.domain.HseJsjd;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.safety.jsjd.domain.vo.JsjgHeadVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 安全技术交底Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface IHseJsjdService extends IService<HseJsjd>{
|
||||
|
||||
/**
|
||||
* 查询安全技术交底
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 安全技术交底
|
||||
*/
|
||||
HseJsjdVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询安全技术交底列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 安全技术交底分页列表
|
||||
*/
|
||||
TableDataInfo<HseJsjdVo> queryPageList(HseJsjdBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的安全技术交底列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 安全技术交底列表
|
||||
*/
|
||||
List<HseJsjdVo> queryList(HseJsjdBo bo);
|
||||
|
||||
/**
|
||||
* 新增安全技术交底
|
||||
*
|
||||
* @param bo 安全技术交底
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(HseJsjdBo bo);
|
||||
|
||||
/**
|
||||
* 修改安全技术交底
|
||||
*
|
||||
* @param bo 安全技术交底
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(HseJsjdBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除安全技术交底信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
JsjgHeadVo listHead(HseJsjdBo bo);
|
||||
}
|
||||
@ -0,0 +1,189 @@
|
||||
package org.dromara.safety.jsjd.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
import org.dromara.safety.domain.HseSpecialPlan;
|
||||
import org.dromara.safety.enums.AqEnums;
|
||||
import org.dromara.safety.jsjd.domain.vo.JsjgHeadVo;
|
||||
import org.dromara.safety.service.IHseSpecialPlanService;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.safety.jsjd.domain.bo.HseJsjdBo;
|
||||
import org.dromara.safety.jsjd.domain.vo.HseJsjdVo;
|
||||
import org.dromara.safety.jsjd.domain.HseJsjd;
|
||||
import org.dromara.safety.jsjd.mapper.HseJsjdMapper;
|
||||
import org.dromara.safety.jsjd.service.IHseJsjdService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 安全技术交底Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class HseJsjdServiceImpl extends ServiceImpl<HseJsjdMapper, HseJsjd> implements IHseJsjdService {
|
||||
|
||||
private final HseJsjdMapper baseMapper;
|
||||
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
private final IHseSpecialPlanService hseSpecialPlanService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询安全技术交底
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 安全技术交底
|
||||
*/
|
||||
@Override
|
||||
public HseJsjdVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询安全技术交底列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 安全技术交底分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<HseJsjdVo> queryPageList(HseJsjdBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<HseJsjd> lqw = buildQueryWrapper(bo);
|
||||
Page<HseJsjdVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的安全技术交底列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 安全技术交底列表
|
||||
*/
|
||||
@Override
|
||||
public List<HseJsjdVo> queryList(HseJsjdBo bo) {
|
||||
LambdaQueryWrapper<HseJsjd> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<HseJsjd> buildQueryWrapper(HseJsjdBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<HseJsjd> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(HseJsjd::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDisclosureNo()), HseJsjd::getDisclosureNo, bo.getDisclosureNo());
|
||||
lqw.eq(bo.getMasterId() != null, HseJsjd::getMasterId, bo.getMasterId());
|
||||
lqw.eq(bo.getDeName() != null, HseJsjd::getDeName, bo.getDeName());
|
||||
lqw.eq(bo.getProjectId() != null, HseJsjd::getProjectId, bo.getProjectId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDisclosureMethod()), HseJsjd::getDisclosureMethod, bo.getDisclosureMethod());
|
||||
lqw.eq(bo.getDisclosureDate() != null, HseJsjd::getDisclosureDate, bo.getDisclosureDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDisclosurePlace()), HseJsjd::getDisclosurePlace, bo.getDisclosurePlace());
|
||||
lqw.eq(bo.getDisclosurePerson() != null, HseJsjd::getDisclosurePerson, bo.getDisclosurePerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDisclosureObjects()), HseJsjd::getDisclosureObjects, bo.getDisclosureObjects());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getKeyRiskTips()), HseJsjd::getKeyRiskTips, bo.getKeyRiskTips());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSafetyNotes()), HseJsjd::getSafetyNotes, bo.getSafetyNotes());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPresentationState()), HseJsjd::getPresentationState, bo.getPresentationState());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), HseJsjd::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOutburstExplain()), HseJsjd::getOutburstExplain, bo.getOutburstExplain());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), HseJsjd::getFileId, bo.getFileId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增安全技术交底
|
||||
*
|
||||
* @param bo 安全技术交底
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(HseJsjdBo bo) {
|
||||
HseJsjd add = MapstructUtils.convert(bo, HseJsjd.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("AQJSJD-");
|
||||
HseJsjdVo hseJsjdVo = baseMapper.selectVoOne(new LambdaQueryWrapper<HseJsjd>().eq(HseJsjd::getMasterId, bo.getMasterId()));
|
||||
if (hseJsjdVo != null) throw new RuntimeException("该专项方案已被添加 ");
|
||||
add.setDisclosureNo(banBen);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改安全技术交底
|
||||
*
|
||||
* @param bo 安全技术交底
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(HseJsjdBo bo) {
|
||||
HseJsjd update = MapstructUtils.convert(bo, HseJsjd.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(HseJsjd entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除安全技术交底信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
HseJsjdVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsjgHeadVo listHead(HseJsjdBo bo) {
|
||||
JsjgHeadVo jsjgHeadVo = new JsjgHeadVo();
|
||||
if (bo.getProjectId() == null) throw new RuntimeException("项目不能为空");
|
||||
Long l = hseSpecialPlanService.getBaseMapper().selectCount(new LambdaQueryWrapper<HseSpecialPlan>().eq(HseSpecialPlan::getProjectId, bo.getProjectId()));
|
||||
List<HseJsjd> hseJsjds = baseMapper.selectList(new LambdaQueryWrapper<HseJsjd>().eq(HseJsjd::getProjectId, bo.getProjectId()));
|
||||
jsjgHeadVo.setWczs(l);
|
||||
jsjgHeadVo.setJdzs(Long.valueOf(hseJsjds.size()));
|
||||
jsjgHeadVo.setJdwwc(hseJsjds.stream().filter(hseJsjd -> hseJsjd.getPresentationState().equals(AqEnums.AQJDZT_F.getTypeValue())).count());
|
||||
jsjgHeadVo.setJdywc(hseJsjds.stream().filter(hseJsjd -> hseJsjd.getPresentationState().equals(AqEnums.AQJDZT_S.getTypeValue())).count());
|
||||
|
||||
return jsjgHeadVo;
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -67,4 +69,6 @@ public interface IHseDangerArchiveService extends IService<HseDangerArchive>{
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
HseJsjdYuJkjcVo getJsjdYGcjk(Long id);
|
||||
}
|
||||
|
||||
@ -9,6 +9,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo;
|
||||
import org.dromara.safety.gcjkjl.domain.HseGcjk;
|
||||
import org.dromara.safety.gcjkjl.service.IHseGcjkService;
|
||||
import org.dromara.safety.jsjd.domain.HseJsjd;
|
||||
import org.dromara.safety.jsjd.service.IHseJsjdService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.safety.domain.bo.HseDangerArchiveBo;
|
||||
import org.dromara.safety.domain.vo.HseDangerArchiveVo;
|
||||
@ -32,6 +39,14 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl<HseDangerArchiveMap
|
||||
|
||||
private final HseDangerArchiveMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IHseGcjkService hseGcjkService;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private final IHseJsjdService hseJsjdService;
|
||||
|
||||
/**
|
||||
* 查询危大工程档案
|
||||
*
|
||||
@ -146,4 +161,25 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl<HseDangerArchiveMap
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HseJsjdYuJkjcVo getJsjdYGcjk(Long id) {
|
||||
HseJsjdYuJkjcVo hseJsjdYuJkjcVo = new HseJsjdYuJkjcVo();
|
||||
if (id == null) throw new RuntimeException("危大工程不能为空");
|
||||
HseGcjk hseGcjk = hseGcjkService.getBaseMapper().selectOne(new LambdaQueryWrapper<HseGcjk>().eq(HseGcjk::getMasterId, id));
|
||||
if (hseGcjk != null){
|
||||
hseJsjdYuJkjcVo.setJsjdFile(hseGcjk.getFileId());
|
||||
}
|
||||
|
||||
List<HseJsjd> hseJsjds = hseJsjdService.getBaseMapper().selectList(new LambdaQueryWrapper<HseJsjd>().eq(HseJsjd::getMasterId, id));
|
||||
if (hseJsjds != null && hseJsjds.size() != 0){
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
hseJsjds.forEach(hseJsjd -> {
|
||||
stringBuffer.append(hseJsjd.getFileId()).append(",");
|
||||
});
|
||||
hseJsjdYuJkjcVo.setGcjkFile(stringBuffer.toString());
|
||||
}
|
||||
|
||||
return hseJsjdYuJkjcVo;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user