受限空间安全作业票

This commit is contained in:
guoshengxiong 2024-05-15 16:53:55 +08:00
parent c508987173
commit 3eeac352ff
6 changed files with 573 additions and 0 deletions

View File

@ -0,0 +1,120 @@
package com.zhgd.xmgl.modules.xz.copy.controller;
import com.zhgd.xmgl.modules.xz.copy.entity.XzLimitSpaceSafe;
import com.zhgd.xmgl.modules.xz.copy.service.IXzLimitSpaceSafeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiImplicitParams;
import java.util.HashMap;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import com.zhgd.jeecg.common.api.vo.Result;
import org.apache.commons.collections.MapUtils;
import org.simpleframework.xml.core.Validate;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @Title: Controller
* @Description: 星纵-受限空间安全作业票
* @author pds
* @date 2024-05-14
* @version V1.0
*/
@RestController
@RequestMapping("/xmgl/xzLimitSpaceSafe")
@Slf4j
@Api(tags = "星纵-受限空间安全作业票相关Api")
public class XzLimitSpaceSafeController {
@Autowired
private IXzLimitSpaceSafeService xzLimitSpaceSafeService;
/**
* 分页列表查询
*
* @return
*/
@ApiOperation(value = "分页列表查询星纵-受限空间安全作业票信息", notes = "分页列表查询星纵-受限空间安全作业票信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
})
@GetMapping(value = "/page")
public Result<IPage<XzLimitSpaceSafe>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(xzLimitSpaceSafeService.queryPageList(paramMap));
}
/**
* 列表查询
*
* @return
*/
@ApiOperation(value = "列表查询星纵-受限空间安全作业票信息", notes = "列表查询星纵-受限空间安全作业票信息", httpMethod = "GET")
@GetMapping(value = "/list")
public Result<List<XzLimitSpaceSafe>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(xzLimitSpaceSafeService.queryList(paramMap));
}
/**
* 添加
*
* @param xzLimitSpaceSafe
* @return
*/
@ApiOperation(value = "添加星纵-受限空间安全作业票信息", notes = "添加星纵-受限空间安全作业票信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<XzLimitSpaceSafe> add(@RequestBody @Validate XzLimitSpaceSafe xzLimitSpaceSafe) {
xzLimitSpaceSafeService.add(xzLimitSpaceSafe);
return Result.ok();
}
/**
* 编辑
*
* @param xzLimitSpaceSafe
* @return
*/
@ApiOperation(value = "编辑星纵-受限空间安全作业票信息", notes = "编辑星纵-受限空间安全作业票信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<XzLimitSpaceSafe> edit(@RequestBody XzLimitSpaceSafe xzLimitSpaceSafe) {
xzLimitSpaceSafeService.edit(xzLimitSpaceSafe);
return Result.ok();
}
/**
* 通过id删除
*
* @return
*/
@ApiOperation(value = "删除星纵-受限空间安全作业票信息", notes = "删除星纵-受限空间安全作业票信息", httpMethod = "POST")
@ApiImplicitParam(name = "id", value = "星纵-受限空间安全作业票ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
@PostMapping(value = "/delete")
public Result<XzLimitSpaceSafe> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
xzLimitSpaceSafeService.delete(MapUtils.getString(map, "id"));
return Result.ok();
}
/**
* 通过id查询
*
* @param id
* @return
*/
@ApiOperation(value = "通过id查询星纵-受限空间安全作业票信息", notes = "通过id查询星纵-受限空间安全作业票信息", httpMethod = "GET")
@ApiImplicitParam(name = "id", value = "星纵-受限空间安全作业票ID", paramType = "query", required = true, dataType = "Integer")
@GetMapping(value = "/queryById")
public Result<XzLimitSpaceSafe> queryById(@RequestParam(name = "id", required = true) String id) {
return Result.success(xzLimitSpaceSafeService.queryById(id));
}
}

View File

@ -0,0 +1,225 @@
package com.zhgd.xmgl.modules.xz.copy.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhgd.xmgl.modules.xz.special.entity.XzGasAnalyze;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: 星纵-受限空间安全作业票
* @author pds
* @date 2024-05-14
* @version V1.0
*/
@Data
@TableName("xz_limit_space_safe")
@ApiModel(value = "XzLimitSpaceSafe实体类", description = "XzLimitSpaceSafe")
public class XzLimitSpaceSafe implements Serializable {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.Long id;
/**
* 作业申请单位
*/
@Excel(name = "作业申请单位", width = 15)
@ApiModelProperty(value = "作业申请单位")
private java.lang.Long jobApplicationUnit;
/**
* 作业申请时间
*/
@Excel(name = "作业申请时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "作业申请时间")
private java.util.Date jobApplicationTime;
/**
* 受限空间名称
*/
@Excel(name = "受限空间名称", width = 15)
@ApiModelProperty(value = "受限空间名称")
private String limitSpaceName;
/**
* 受限空间内原有介质名称
*/
@Excel(name = "受限空间内原有介质名称", width = 15)
@ApiModelProperty(value = "受限空间内原有介质名称")
private String limitSpaceMediumName;
/**
* 作业人
*/
@Excel(name = "作业人", width = 15)
@ApiModelProperty(value = "作业人")
private Long jobPerson;
/**
* 作业单位
*/
@Excel(name = "作业单位", width = 15)
@ApiModelProperty(value = "作业单位")
private java.lang.Long operatingUnit;
/**
* 作业负责人
*/
@Excel(name = "作业负责人", width = 15)
@ApiModelProperty(value = "作业负责人")
private java.lang.Long assignmentPersonInCharge;
/**
* 安全交底人
*/
@Excel(name = "安全交底人", width = 15)
@ApiModelProperty(value = "安全交底人")
private java.lang.Long safetyInformant;
/**
* 接受交底人
*/
@Excel(name = "接受交底人", width = 15)
@ApiModelProperty(value = "接受交底人")
private java.lang.Long acceptTheInformant;
/**
* 监护人
*/
@Excel(name = "监护人", width = 15)
@ApiModelProperty(value = "监护人")
private java.lang.Long guardian;
/**
* 风险辨识结果
*/
@Excel(name = "风险辨识结果", width = 15)
@ApiModelProperty(value = "风险辨识结果")
private java.lang.String riskIdentificationResult;
/**
* 作业内容
*/
@Excel(name = "作业内容", width = 15)
@ApiModelProperty(value = "作业内容")
private java.lang.String jobContent;
/**
* 安全作业票编号
*/
@Excel(name = "安全作业票编号", width = 15)
@ApiModelProperty(value = "安全作业票编号")
private java.lang.String safetyWorkTicketCode;
/**
* 关联的其他特殊作业
*/
@Excel(name = "关联的其他特殊作业", width = 15)
@ApiModelProperty(value = "关联的其他特殊作业")
private java.lang.String otherRelatedSpecialTask;
/**
* 动火作业实施时间开始
*/
@Excel(name = "动火作业实施时间开始", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "动火作业实施时间开始")
private java.util.Date hotWorkExecutionBeginTime;
/**
* 动火作业实施时间结束
*/
@Excel(name = "动火作业实施时间结束", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "动火作业实施时间结束")
private java.util.Date hotWorkExecutionEndTime;
/**
* 所属项目SN
*/
@Excel(name = "所属项目SN", width = 15)
@ApiModelProperty(value = "所属项目SN")
private java.lang.String projectSn;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private java.util.Date createDate;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private java.util.Date updateDate;
@ApiModelProperty(value = "安全措施")
private java.lang.String safeMeasure;
@ApiModelProperty(value = "作业票编号")
private java.lang.String workTicketCode;
@ApiModelProperty(value = "最终验收状态1进行中2已闭合")
private Integer finalAcceptanceStatus;
/**
* 作业申请单位名称
*/
@TableField(exist = false)
@Excel(name = "作业申请单位名称", width = 15)
@ApiModelProperty(value = "作业申请单位名称")
private java.lang.String jobApplicationUnitName;
/**
* 作业单位名称
*/
@TableField(exist = false)
@Excel(name = "作业单位名称", width = 15)
@ApiModelProperty(value = "作业单位名称")
private java.lang.String operatingUnitName;
/**
* 作业负责人名称
*/
@TableField(exist = false)
@Excel(name = "作业负责人名称", width = 15)
@ApiModelProperty(value = "作业负责人名称")
private java.lang.String assignmentPersonInChargeName;
/**
* 作业人名称
*/
@Excel(name = "作业人名称", width = 15)
@ApiModelProperty(value = "作业人名称")
private Long jobPersonName;
/**
* 监护人名称
*/
@TableField(exist = false)
@Excel(name = "监护人名称", width = 15)
@ApiModelProperty(value = "监护人名称")
private java.lang.String guardianName;
/**
* 安全交底人名称
*/
@TableField(exist = false)
@Excel(name = "安全交底人名称", width = 15)
@ApiModelProperty(value = "安全交底人名称")
private java.lang.String safetyInformantName;
/**
* 接受交底人名称
*/
@TableField(exist = false)
@Excel(name = "接受交底人名称", width = 15)
@ApiModelProperty(value = "接受交底人名称")
private java.lang.String acceptTheInformantName;
@TableField(exist = false)
@ApiModelProperty(value = "安全隐患总数")
private Integer hiddenDangerNum;
@TableField(exist = false)
@ApiModelProperty(value = "星纵-气体分析列表")
private List<XzGasAnalyze> xzGasAnalyzeList;
}

View File

@ -0,0 +1,31 @@
package com.zhgd.xmgl.modules.xz.copy.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.xz.copy.entity.XzLimitSpaceSafe;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description: 星纵-受限空间安全作业票
* @author pds
* @date 2024-05-14
* @version V1.0
*/
@Mapper
public interface XzLimitSpaceSafeMapper extends BaseMapper<XzLimitSpaceSafe> {
IPage<XzLimitSpaceSafe> queryList(Page<XzLimitSpaceSafe> page, @Param(Constants.WRAPPER) QueryWrapper<XzLimitSpaceSafe> queryWrapper, @Param("param") HashMap<String, Object> param);
List<XzLimitSpaceSafe> queryList(@Param(Constants.WRAPPER) QueryWrapper<XzLimitSpaceSafe> queryWrapper, @Param("param") HashMap<String, Object> param);
XzLimitSpaceSafe queryById(@Param("param") Map<String, Object> param);
}

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.xz.copy.mapper.XzLimitSpaceSafeMapper">
<sql id="column">
t.*,
ei1.enterprise_name as jobApplicationUnitName,
ei2.enterprise_name as operatingUnitName,
su.real_name as assignmentPersonInChargeName,
wi1.worker_name as jobPersonName,
wi2.worker_name as safetyInformantName,
wi3.worker_name as acceptTheInformantName,
wi4.worker_name as guardianName,
IFNULL(tp.hidden_danger_num, 0) hidden_danger_num
</sql>
<sql id="selectTable">
select
<include refid="column"/>
from xz_limit_space_safe t
left join enterprise_info ei1 on t.job_application_unit = ei1.id
left join enterprise_info ei2 on t.operating_unit = ei2.id
left join system_user su on su.user_id=t.assignment_person_in_charge
left join worker_info wi1 on t.job_person = wi1.id
left join worker_info wi2 on t.safety_informant = wi2.id
left join worker_info wi3 on t.accept_the_informant = wi3.id
left join worker_info wi4 on t.guardian = wi4.id
LEFT JOIN (SELECT engineering_id, COUNT(1) hidden_danger_num
from xz_security_quality_inspection_record
WHERE 1 = 1
<if test="param.projectSn != null and param.projectSn != ''">
and project_sn = #{param.projectSn}
</if>
<if test="param.engineeringId != null and param.engineeringId != ''">
and enterprise_id = #{param.engineeringId}
</if>
AND `status` in (2, 3, 4)
AND type = 1
GROUP BY engineering_id) tp ON t.id = tp.engineering_id
</sql>
<select id="queryList" resultType="com.zhgd.xmgl.modules.xz.copy.entity.XzLimitSpaceSafe">
<include refid="selectTable">
</include>
${ew.customSqlSegment}
</select>
<select id="queryById" resultType="com.zhgd.xmgl.modules.xz.copy.entity.XzLimitSpaceSafe">
<include refid="selectTable">
</include>
where t.id = #{param.id}
</select>
</mapper>

View File

@ -0,0 +1,31 @@
package com.zhgd.xmgl.modules.xz.copy.service;
import com.zhgd.xmgl.modules.xz.copy.entity.XzLimitSpaceSafe;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 星纵-受限空间安全作业票
* @author pds
* @date 2024-05-14
* @version V1.0
*/
public interface IXzLimitSpaceSafeService extends IService<XzLimitSpaceSafe> {
IPage<XzLimitSpaceSafe> queryPageList(HashMap<String, Object> paramMap);
List<XzLimitSpaceSafe> queryList(HashMap<String, Object> paramMap);
void add(XzLimitSpaceSafe xzLimitSpaceSafe);
void edit(XzLimitSpaceSafe xzLimitSpaceSafe);
void delete(String id);
XzLimitSpaceSafe queryById(String id);
void finish(Long engineeringId);
}

View File

@ -0,0 +1,116 @@
package com.zhgd.xmgl.modules.xz.copy.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.xz.copy.entity.XzLimitSpaceSafe;
import com.zhgd.xmgl.modules.xz.copy.mapper.XzLimitSpaceSafeMapper;
import com.zhgd.xmgl.modules.xz.copy.service.IXzLimitSpaceSafeService;
import com.zhgd.xmgl.modules.xz.special.entity.XzGasAnalyze;
import com.zhgd.xmgl.modules.xz.special.mapper.XzGasAnalyzeMapper;
import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 星纵-受限空间安全作业票
* @author pds
* @date 2024-05-14
* @version V1.0
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class XzLimitSpaceSafeServiceImpl extends ServiceImpl<XzLimitSpaceSafeMapper, XzLimitSpaceSafe> implements IXzLimitSpaceSafeService {
@Autowired
private XzLimitSpaceSafeMapper xzSpecialOperationFireSafetyMapper;
@Autowired
private XzGasAnalyzeMapper xzGasAnalyzeMapper;
@Override
public IPage<XzLimitSpaceSafe> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<XzLimitSpaceSafe> queryWrapper = getQueryWrapper(paramMap);
Page<XzLimitSpaceSafe> page = PageUtil.getPage(paramMap);
IPage<XzLimitSpaceSafe> pageList = baseMapper.queryList(page, queryWrapper, paramMap);
pageList.setRecords(dealList(pageList.getRecords()));
return pageList;
}
@Override
public List<XzLimitSpaceSafe> queryList(HashMap<String, Object> paramMap) {
QueryWrapper<XzLimitSpaceSafe> queryWrapper = getQueryWrapper(paramMap);
return dealList(baseMapper.queryList(queryWrapper, paramMap));
}
private QueryWrapper<XzLimitSpaceSafe> getQueryWrapper(HashMap<String, Object> paramMap) {
String alias = "t.";
QueryWrapper<XzLimitSpaceSafe> queryWrapper = QueryGenerator.initPageQueryWrapper(XzLimitSpaceSafe.class, paramMap, alias);
String firemanName = MapUtils.getString(paramMap, "firemanName");
if (StrUtil.isNotBlank(firemanName)) {
queryWrapper.like("wi1.worker_name", firemanName);
}
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(XzLimitSpaceSafe::getJobApplicationTime));
return queryWrapper;
}
private List<XzLimitSpaceSafe> dealList(List<XzLimitSpaceSafe> list) {
return list;
}
@Override
public void add(XzLimitSpaceSafe xzLimitSpaceSafe) {
xzLimitSpaceSafe.setId(null);
baseMapper.insert(xzLimitSpaceSafe);
}
@Override
public void edit(XzLimitSpaceSafe xzLimitSpaceSafe) {
XzLimitSpaceSafe oldXzLimitSpaceSafe = baseMapper.selectById(xzLimitSpaceSafe.getId());
if (oldXzLimitSpaceSafe == null) {
throw new OpenAlertException("未找到对应实体");
}
baseMapper.updateById(xzLimitSpaceSafe);
}
@Override
public void delete(String id) {
XzLimitSpaceSafe xzLimitSpaceSafe = baseMapper.selectById(id);
if (xzLimitSpaceSafe == null) {
throw new OpenAlertException("未找到对应实体");
}
baseMapper.deleteById(id);
}
@Override
public XzLimitSpaceSafe queryById(String id) {
XzLimitSpaceSafe safety = baseMapper.queryById(new MapBuilder<String, Object>().put("id", id).build());
if (safety == null) {
throw new OpenAlertException("未找到对应实体");
}
//List<XzGasAnalyze> xzGasAnalyzes = xzGasAnalyzeMapper.selectList(new LambdaQueryWrapper<XzGasAnalyze>()
// .eq(XzGasAnalyze::getXzLimitSpaceSafeId, id));
//safety.setXzGasAnalyzeList(xzGasAnalyzes);
return safety;
}
@Override
public void finish(Long engineeringId) {
baseMapper.update(null, new LambdaUpdateWrapper<XzLimitSpaceSafe>()
.eq(XzLimitSpaceSafe::getId, engineeringId)
.set(XzLimitSpaceSafe::getFinalAcceptanceStatus, 2)
);
}
}