bug修复

This commit is contained in:
guo 2023-12-22 18:35:08 +08:00
parent 9e548566e7
commit 57f8d61700
23 changed files with 395 additions and 102 deletions

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.rt.controller; package com.zhgd.xmgl.modules.rt.controller;
import com.zhgd.redis.lock.RedisRepository;
import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType; import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService; import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -13,6 +14,7 @@ import java.io.OutputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.HashMap; import java.util.HashMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -119,19 +121,8 @@ public class RtRiskInventoryTypeController {
@ApiImplicitParam(name = "id", value = "榕图-风险清册类型ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}") @ApiImplicitParam(name = "id", value = "榕图-风险清册类型ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
@PostMapping(value = "/delete") @PostMapping(value = "/delete")
public Result<RtRiskInventoryType> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) { public Result<RtRiskInventoryType> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id"); rtRiskInventoryTypeService.delete(map);
Result<RtRiskInventoryType> result = new Result<RtRiskInventoryType>(); return Result.ok();
RtRiskInventoryType rtRiskInventoryType = rtRiskInventoryTypeService.getById(id);
if (rtRiskInventoryType == null) {
result.error500("未找到对应实体");
} else {
boolean ok = rtRiskInventoryTypeService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
return result;
} }
/** /**

View File

@ -140,16 +140,13 @@ public class RtRiskSecurityLibraryTypeConcreteController {
return result; return result;
} }
@OperLog(operModul = "质量管理", operType = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用", operDesc = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用") @ApiOperation(value = "查询作业必备条件和作业过程风险控制措施", notes = "查询作业必备条件和作业过程风险控制措施", httpMethod = "POST")
@ApiOperation(value = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用", notes = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目唯一标识", paramType = "query", required = true, dataType = "String"), @ApiImplicitParam(name = "rtRiskSecurityLibraryTypeIdList", value = "榕图-风险安全库-作业类型、工序及部位idList", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "idStr", value = "质量问题库子项ID组成字符串", paramType = "榕图-风险安全库-作业类型、工序及部位ID", required = true, dataType = "String"),
@ApiImplicitParam(name = "recordStatus", value = "记录状态0 启用1禁用", paramType = "query", required = true, dataType = "String"),
}) })
@PostMapping(value = "/updateRtRiskSecurityLibraryTypeConcreteUsable") @PostMapping(value = "/queryJobPrerequisite")
public Result updateRtRiskSecurityLibraryTypeConcreteUsable(@RequestBody Map<String, Object> map) { public Result<RtRiskSecurityLibraryTypeConcrete> queryJobPrerequisite(@RequestBody Map<String, Object> map) {
rtRiskSecurityLibraryTypeConcreteService.updateRtRiskSecurityLibraryTypeConcreteUsable(map); return Result.success(rtRiskSecurityLibraryTypeConcreteService.queryJobPrerequisite(map));
return Result.ok();
} }
} }

View File

@ -100,19 +100,8 @@ public class RtWorkTicketController {
@ApiImplicitParam(name = "id", value = "榕图-工作票ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}") @ApiImplicitParam(name = "id", value = "榕图-工作票ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
@PostMapping(value = "/delete") @PostMapping(value = "/delete")
public Result<RtWorkTicket> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) { public Result<RtWorkTicket> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id"); rtWorkTicketService.delete(map);
Result<RtWorkTicket> result = new Result<RtWorkTicket>(); return Result.ok();
RtWorkTicket rtWorkTicket = rtWorkTicketService.getById(id);
if (rtWorkTicket == null) {
result.error500("未找到对应实体");
} else {
boolean ok = rtWorkTicketService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
return result;
} }
/** /**

View File

@ -32,12 +32,6 @@ public class RtRiskInventoryType implements Serializable {
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
private java.lang.Long id; private java.lang.Long id;
/**
* 名称
*/
@Excel(name = "名称", width = 15)
@ApiModelProperty(value = "名称")
private java.lang.String name;
/** /**
* 工序名称 * 工序名称
*/ */
@ -119,6 +113,11 @@ public class RtRiskInventoryType implements Serializable {
@Excel(name = "预防措施", width = 15) @Excel(name = "预防措施", width = 15)
@ApiModelProperty(value = "预防措施") @ApiModelProperty(value = "预防措施")
private java.lang.String precaution; private java.lang.String precaution;
@ApiModelProperty(value = "前置任务id列表")
private java.lang.String predecessorIds;
@ApiModelProperty(value = "备注")
private java.lang.String remark;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "榕图-风险清册类型子集") @ApiModelProperty(value = "榕图-风险清册类型子集")

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig;
import com.zhgd.xmgl.modules.video.entity.VideoItem;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -196,4 +198,11 @@ public class RtWorkTicket implements Serializable {
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位idList") @ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位idList")
private List<String> rtRiskSecurityLibraryTypeIdList; private List<String> rtRiskSecurityLibraryTypeIdList;
@TableField(exist = false)
@ApiModelProperty(value = "视频设备列表")
private List<VideoItem> videoList;
@ApiModelProperty(value = "视频配置")
@TableField(exist = false)
private ProjectVideoConfig projectVideoConfig;
} }

View File

@ -0,0 +1,61 @@
package com.zhgd.xmgl.modules.rt.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.video.entity.VideoItem;
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.Date;
import java.util.List;
/**
* @Description: 榕图-工作票和视频设备中间表
* @author pds
* @date 2023-12-21
* @version V1.0
*/
@Data
@TableName("rt_work_ticket_to_video_item")
@ApiModel(value = "RtWorkTicketToVideoItem实体类", description = "RtWorkTicketToVideoItem")
public class RtWorkTicketToVideoItem implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "榕图-工作票id")
private Long rtWorkTicketId;
@ApiModelProperty(value = "视频设备id")
private Long videoItemId;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
@Excel(name = "创建时间 yyyy-MM-dd HH:mm:ss", 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 = "创建时间 yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新时间 yyyy-MM-dd HH:mm:ss
*/
@Excel(name = "更新时间 yyyy-MM-dd HH:mm:ss", 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 = "更新时间 yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@TableField(exist = false)
List<VideoItem> videoItems;
}

View File

@ -23,4 +23,6 @@ public interface RtRiskInventoryTypeMapper extends BaseMapper<RtRiskInventoryTyp
List<RtRiskInventoryType> queryList(@Param(Constants.WRAPPER) QueryWrapper<RtRiskInventoryType> queryWrapper); List<RtRiskInventoryType> queryList(@Param(Constants.WRAPPER) QueryWrapper<RtRiskInventoryType> queryWrapper);
IPage<RtRiskInventoryType> queryList(Page<RtRiskInventoryType> page, @Param(Constants.WRAPPER) QueryWrapper<RtRiskInventoryType> queryWrapper); IPage<RtRiskInventoryType> queryList(Page<RtRiskInventoryType> page, @Param(Constants.WRAPPER) QueryWrapper<RtRiskInventoryType> queryWrapper);
void deleteChild(String id);
} }

View File

@ -3,6 +3,9 @@ package com.zhgd.xmgl.modules.rt.mapper;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToRiskSecurityLibraryType; import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToRiskSecurityLibraryType;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @Description: 榕图-工作票和风险安全库-作业类型工序及部位中间表 * @Description: 榕图-工作票和风险安全库-作业类型工序及部位中间表
@ -12,5 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
@Mapper @Mapper
public interface RtWorkTicketToRiskSecurityLibraryTypeMapper extends BaseMapper<RtWorkTicketToRiskSecurityLibraryType> { public interface RtWorkTicketToRiskSecurityLibraryTypeMapper extends BaseMapper<RtWorkTicketToRiskSecurityLibraryType> {
List<String> selectTypeIdsStrByRtWorkTicketId(@Param("rtWorkTicketId") Long rtWorkTicketId);
} }

View File

@ -0,0 +1,20 @@
package com.zhgd.xmgl.modules.rt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhgd.xmgl.modules.rt.entity.RtMaterialOrder;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToVideoItem;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Description: 榕图-工作票和视频设备中间表
* @author pds
* @date 2023-12-21
* @version V1.0
*/
@Mapper
public interface RtWorkTicketToVideoItemMapper extends BaseMapper<RtWorkTicketToVideoItem> {
List<RtWorkTicketToVideoItem> queryVideoItemList(List<Long> ids);
}

View File

@ -6,4 +6,10 @@
from rt_risk_inventory_type from rt_risk_inventory_type
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<delete id="deleteChild">
delete
from rt_risk_inventory_type
where find_in_set(#{id}, predecessor_ids)
</delete>
</mapper> </mapper>

View File

@ -1,20 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketMapper"> <mapper namespace="com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketMapper">
<resultMap id="queryListResultMap" type="com.zhgd.xmgl.modules.rt.entity.RtWorkTicket"> <resultMap id="queryListResultMap" type="com.zhgd.xmgl.modules.rt.entity.RtWorkTicket" autoMapping="true">
<id column="id" jdbcType="BIGINT" property="id"/> <id column="id" jdbcType="BIGINT" property="id"/>
<collection property="rtRiskSecurityLibraryTypeIdList" column="id" ofType="string" <association property="projectVideoConfig" javaType="com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig"
select="queryRtWorkTicketToRiskSecurityLibraryTypeId"/> columnPrefix="pvc_" autoMapping="true">
<id column="pvc_id" property="id"/>
</association>
<collection property="rtRiskSecurityLibraryTypeIdList" column="id" ofType="java.lang.String"
select="com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketToRiskSecurityLibraryTypeMapper.selectTypeIdsStrByRtWorkTicketId">
</collection>
</resultMap> </resultMap>
<select id="queryList" resultMap="queryListResultMap"> <select id="queryList" resultMap="queryListResultMap">
select rwt.* select rwt.*,
pvc.id as pvc_id,
pvc.project_sn as pvc_project_sn,
pvc.video_type as pvc_video_type,
pvc.is_enable as pvc_is_enable,
pvc.account as pvc_account,
pvc.`password` as pvc_password ,
pvc.app_id as pvc_app_id,
pvc.app_secret as pvc_app_secret,
pvc.play_type as pvc_play_type
from rt_work_ticket rwt from rt_work_ticket rwt
left join project_video_config pvc on pvc.project_sn=rwt.project_sn and is_enable=1
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="queryRtWorkTicketToRiskSecurityLibraryTypeId" resultType="java.lang.String">
SELECT CONCAT(rt_risk_security_library_type_id) rt_work_ticket_to_risk_security_library_type_id
FROM rt_work_ticket_to_risk_security_library_type
WHERE rt_work_ticket_id = #{rtWorkTicketId}
</select>
</mapper> </mapper>

View File

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketToRiskSecurityLibraryTypeMapper"> <mapper namespace="com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketToRiskSecurityLibraryTypeMapper">
<select id="selectTypeIdsStrByRtWorkTicketId" resultType="java.lang.String">
select
rt_risk_security_library_type_id
from rt_work_ticket_to_risk_security_library_type
where rt_work_ticket_id=#{rtWorkTicketId}
</select>
</mapper> </mapper>

View File

@ -0,0 +1,20 @@
<?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.rt.mapper.RtWorkTicketToVideoItemMapper">
<resultMap id="queryVideoItemListRm" type="com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToVideoItem"
autoMapping="true">
<id column="rt_work_ticket_id" property="rtWorkTicketId"/>
<collection property="videoItems" ofType="com.zhgd.xmgl.modules.video.entity.VideoItem" autoMapping="true">
<id property="itemId" column="item_id"/>
</collection>
</resultMap>
<select id="queryVideoItemList" resultMap="queryVideoItemListRm">
select rwttvi.rt_work_ticket_id,vi.* from rt_work_ticket_to_video_item rwttvi
join video_item vi on rwttvi.video_item_id = vi.item_id
where rwttvi.rt_work_ticket_id in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

View File

@ -28,4 +28,6 @@ public interface IRtRiskInventoryTypeService extends IService<RtRiskInventoryTyp
IPage<RtRiskInventoryType> queryTreePageList(HashMap<String, Object> paramMap); IPage<RtRiskInventoryType> queryTreePageList(HashMap<String, Object> paramMap);
void importExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception; void importExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception;
void delete(HashMap<String, Object> map);
} }

View File

@ -19,4 +19,6 @@ public interface IRtRiskSecurityLibraryTypeConcreteService extends IService<RtRi
List<RtRiskSecurityLibraryTypeConcrete> selectCompanyRtRiskSecurityLibraryTypeConcreteList(Map<String, Object> map); List<RtRiskSecurityLibraryTypeConcrete> selectCompanyRtRiskSecurityLibraryTypeConcreteList(Map<String, Object> map);
void updateRtRiskSecurityLibraryTypeConcreteUsable(Map<String, Object> map); void updateRtRiskSecurityLibraryTypeConcreteUsable(Map<String, Object> map);
RtRiskSecurityLibraryTypeConcrete queryJobPrerequisite(Map<String, Object> map);
} }

View File

@ -22,4 +22,6 @@ public interface IRtWorkTicketService extends IService<RtWorkTicket> {
void add(RtWorkTicket rtWorkTicket); void add(RtWorkTicket rtWorkTicket);
void edit(RtWorkTicket rtWorkTicket); void edit(RtWorkTicket rtWorkTicket);
void delete(HashMap<String, Object> map);
} }

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.rt.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; 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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -12,19 +13,19 @@ import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType; import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper; import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService; import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService;
import com.zhgd.xmgl.util.*; import com.zhgd.xmgl.util.ExcelUtils;
import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.Collections; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -68,6 +69,14 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
@Override @Override
public void add(RtRiskInventoryType rtRiskInventoryType) { public void add(RtRiskInventoryType rtRiskInventoryType) {
rtRiskInventoryType.setId(null); rtRiskInventoryType.setId(null);
if (!Objects.equals(rtRiskInventoryType.getParentId(), 0L)) {
RtRiskInventoryType tp = baseMapper.selectOne(new LambdaQueryWrapper<RtRiskInventoryType>()
.eq(RtRiskInventoryType::getId, rtRiskInventoryType.getParentId()));
rtRiskInventoryType.setPredecessorIds(tp.getPredecessorIds() + "," + rtRiskInventoryType.getParentId());
} else {
//顶级
rtRiskInventoryType.setPredecessorIds("0");
}
baseMapper.insert(rtRiskInventoryType); baseMapper.insert(rtRiskInventoryType);
} }
@ -105,18 +114,96 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
if (list == null || list.size() == 0) { if (list == null || list.size() == 0) {
throw new OpenAlertException(MessageUtil.get("excelNotDataErr")); throw new OpenAlertException(MessageUtil.get("excelNotDataErr"));
} }
Map<String, RtRiskSecurityLibraryType> libraryObj = new HashMap<>(); List<RtRiskInventoryType> readTypeList = list.stream().map(m -> {
for (Map<String, String> importInfo : list) { RtRiskInventoryType type = new RtRiskInventoryType();
//风险编号 工序 风险可能导致的后果 风险评定值D 风险级别 风险控制关键因素 预控措施 备注 type.setProcessName(m.get("工序"));
if (importInfo == null || importInfo.get("风险编号") == null || importInfo.get("风险编号").equals("")) { //补零
continue; String x = m.get("风险编号");
String z = "0";
for (int i = 0; i < 8 - x.length(); i++) {
x = z + x;
}
String regex = "\\d{8}";
if (!x.matches(regex)) {
throw new OpenAlertException("导入失败风险编号不是8位数字类型");
}
type.setCode(x);
type.setProjectSn(projectSn);
//type.setLevel();
type.setRiskPossibleConsequence(m.get("风险可能导致的后果"));
type.setRiskAssessmentValueD(m.get("风险评定值D"));
type.setRiskLevel(m.get("风险级别"));
type.setKeyFactorsInRiskControl(m.get("风险控制关键因素"));
type.setPrecaution(m.get("预控措施"));
//type.setPredecessorIds();
return type;
}).filter(rtRiskInventoryType -> StrUtil.isNotBlank(rtRiskInventoryType.getCode())).sorted((o1, o2) -> o1.getCode().compareTo(o2.getCode())).collect(Collectors.toList());
for (RtRiskInventoryType t : readTypeList) {
// 查询编码是否存在存在就更新不存在就新增
RtRiskInventoryType rtRiskInventoryType = rtRiskInventoryTypeMapper.selectOne(new LambdaQueryWrapper<RtRiskInventoryType>()
.eq(RtRiskInventoryType::getCode, t.getCode())
.eq(RtRiskInventoryType::getProjectSn, projectSn)
);
if (rtRiskInventoryType == null) {
String code = t.getCode();
//去掉后面所有的0
String c = code.replaceAll("0+$", "");
String parentCode = c;
if (c.length() / 2 == 1) {
parentCode = StringUtils.chop(parentCode);
} else {
parentCode = StringUtils.chop(parentCode);
parentCode = StringUtils.chop(parentCode);
}
for (int i = parentCode.length(); i < 8; i++) {
parentCode += "0";
}
if (parentCode.equals("00000000")) {
//最顶级
t.setParentId(0L);
t.setPredecessorIds("0");
} else {
RtRiskInventoryType parent = rtRiskInventoryTypeMapper.selectOne(new LambdaQueryWrapper<RtRiskInventoryType>()
.eq(RtRiskInventoryType::getCode, parentCode)
.eq(RtRiskInventoryType::getProjectSn, projectSn)
);
//检查上级编码不存在则报错
if (parent == null) {
throw new OpenAlertException("编码" + code + "不存在父级");
}
t.setParentId(parent.getId());
t.setPredecessorIds(parent.getPredecessorIds() + "," + parent.getId());
}
rtRiskInventoryTypeMapper.insert(t);
} else {
rtRiskInventoryTypeMapper.update(t, new LambdaQueryWrapper<RtRiskInventoryType>()
.eq(RtRiskInventoryType::getCode, t.getCode())
.eq(RtRiskInventoryType::getProjectSn, projectSn)
);
}
} }
String code = importInfo.get("编码").trim();
String typeName = importInfo.get("作业类型、工序及部位");
String newCode = CodeUtils.subCode(code);
} }
public static void main(String[] args) {
String input = "00000000";
String regex = "\\d{8}";
if (input.matches(regex)) {
System.out.println("字符串是一个8位数字。");
} else {
System.out.println("字符串不是一个8位数字。");
}
}
@Override
public void delete(HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id");
RtRiskInventoryType taskProgress = getById(id);
if (taskProgress == null) {
throw new OpenAlertException("未找到对应实体");
}
removeById(id);
baseMapper.deleteChild(id);
} }
public List<RtRiskInventoryType> getParentChildList(HashMap<String, Object> paramMap) { public List<RtRiskInventoryType> getParentChildList(HashMap<String, Object> paramMap) {

View File

@ -1,11 +1,13 @@
package com.zhgd.xmgl.modules.rt.service.impl; package com.zhgd.xmgl.modules.rt.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryDisable; import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryDisable;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryTypeConcrete; import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryTypeConcrete;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType; import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicket;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskSecurityLibraryTypeConcreteMapper; import com.zhgd.xmgl.modules.rt.mapper.RtRiskSecurityLibraryTypeConcreteMapper;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskSecurityLibraryTypeMapper; import com.zhgd.xmgl.modules.rt.mapper.RtRiskSecurityLibraryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtRiskSecurityLibraryTypeConcreteService; import com.zhgd.xmgl.modules.rt.service.IRtRiskSecurityLibraryTypeConcreteService;
@ -83,6 +85,27 @@ public class RtRiskSecurityLibraryTypeConcreteServiceImpl extends ServiceImpl<Rt
} }
} }
@Override
public RtRiskSecurityLibraryTypeConcrete queryJobPrerequisite(Map<String, Object> map) {
Object idList = MapUtils.getObject(map, "rtRiskSecurityLibraryTypeIdList");
List<String> rtRiskSecurityLibraryTypeIdList = (List<String>) idList;
RtRiskSecurityLibraryTypeConcrete rtWorkTicket = new RtRiskSecurityLibraryTypeConcrete();
if (CollUtil.isNotEmpty(rtRiskSecurityLibraryTypeIdList)) {
List<RtRiskSecurityLibraryTypeConcrete> rtRiskSecurityLibraryTypes = rtRiskSecurityLibraryTypeConcreteMapper.selectList(new LambdaQueryWrapper<RtRiskSecurityLibraryTypeConcrete>()
.in(RtRiskSecurityLibraryTypeConcrete::getRtRiskSecurityLibraryTypeId, rtRiskSecurityLibraryTypeIdList));
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < rtRiskSecurityLibraryTypes.size(); i++) {
RtRiskSecurityLibraryTypeConcrete concrete = rtRiskSecurityLibraryTypes.get(i);
sb1.append("(" + (i + 1) + ") " + concrete.getJobPrerequisite() + "\r\n");
sb2.append("(" + (i + 1) + ") " + concrete.getOperationProcessRiskControlMeasure() + "\r\n");
}
rtWorkTicket.setJobPrerequisite(sb1.toString());
rtWorkTicket.setOperationProcessRiskControlMeasure(sb2.toString());
}
return rtWorkTicket;
}
private void enableRtRiskSecurityLibraryType(String id) { private void enableRtRiskSecurityLibraryType(String id) {
RtRiskSecurityLibraryTypeConcrete rtRiskSecurityLibraryTypeConcrete = rtRiskSecurityLibraryTypeConcreteMapper.selectById(id); RtRiskSecurityLibraryTypeConcrete rtRiskSecurityLibraryTypeConcrete = rtRiskSecurityLibraryTypeConcreteMapper.selectById(id);
Long rtRiskSecurityLibraryTypeId = rtRiskSecurityLibraryTypeConcrete.getRtRiskSecurityLibraryTypeId(); Long rtRiskSecurityLibraryTypeId = rtRiskSecurityLibraryTypeConcrete.getRtRiskSecurityLibraryTypeId();

View File

@ -8,16 +8,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType; import com.zhgd.xmgl.modules.project.mapper.ProjectVideoConfigMapper;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicket; import com.zhgd.xmgl.modules.rt.entity.*;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToRiskSecurityLibraryType; import com.zhgd.xmgl.modules.rt.mapper.*;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskSecurityLibraryTypeMapper;
import com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketMapper;
import com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketToRiskSecurityLibraryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtWorkTicketService; import com.zhgd.xmgl.modules.rt.service.IRtWorkTicketService;
import com.zhgd.xmgl.modules.video.entity.VideoItem;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil; import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -25,6 +26,10 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* @Description: 榕图-工作票 * @Description: 榕图-工作票
@ -41,6 +46,15 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
private RtWorkTicketToRiskSecurityLibraryTypeMapper rtWorkTicketToRiskSecurityLibraryTypeMapper; private RtWorkTicketToRiskSecurityLibraryTypeMapper rtWorkTicketToRiskSecurityLibraryTypeMapper;
@Autowired @Autowired
private RtRiskSecurityLibraryTypeMapper rtRiskSecurityLibraryTypeMapper; private RtRiskSecurityLibraryTypeMapper rtRiskSecurityLibraryTypeMapper;
@Autowired
private RtWorkTicketToVideoItemMapper rtWorkTicketToVideoItemMapper;
@Autowired
private VideoItemMapper videoItemMapper;
@Autowired
private ProjectVideoConfigMapper projectVideoConfigMapper;
@Autowired
private RtRiskSecurityLibraryTypeConcreteMapper rtRiskSecurityLibraryTypeConcreteMapper;
@Override @Override
public IPage<RtWorkTicket> queryPageList(HashMap<String, Object> paramMap) { public IPage<RtWorkTicket> queryPageList(HashMap<String, Object> paramMap) {
@ -65,6 +79,14 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
} }
private List<RtWorkTicket> dealList(List<RtWorkTicket> list) { private List<RtWorkTicket> dealList(List<RtWorkTicket> list) {
List<Long> ids = list.stream().map(RtWorkTicket::getId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(ids)) {
List<RtWorkTicketToVideoItem> toVideoItems = rtWorkTicketToVideoItemMapper.queryVideoItemList(ids);
Map<Long, RtWorkTicketToVideoItem> ticketMap = toVideoItems.stream().collect(Collectors.toMap(RtWorkTicketToVideoItem::getRtWorkTicketId, Function.identity()));
for (RtWorkTicket rtWorkTicket : list) {
rtWorkTicket.setVideoList(Optional.ofNullable(ticketMap.get(rtWorkTicket.getId())).map(RtWorkTicketToVideoItem::getVideoItems).orElse(null));
}
}
return list; return list;
} }
@ -74,6 +96,20 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
setRtRiskSecurityLibraryTypeStrIf(rtWorkTicket); setRtRiskSecurityLibraryTypeStrIf(rtWorkTicket);
baseMapper.insert(rtWorkTicket); baseMapper.insert(rtWorkTicket);
insertRelIf(rtWorkTicket); insertRelIf(rtWorkTicket);
insertVideoItemIf(rtWorkTicket);
}
private void insertVideoItemIf(RtWorkTicket rtWorkTicket) {
List<VideoItem> videoList = rtWorkTicket.getVideoList();
if (CollUtil.isNotEmpty(videoList)) {
for (VideoItem videoItem : videoList) {
RtWorkTicketToVideoItem entity = new RtWorkTicketToVideoItem();
entity.setRtWorkTicketId(rtWorkTicket.getId());
entity.setVideoItemId(videoItem.getItemId());
rtWorkTicketToVideoItemMapper.insert(entity);
}
}
} }
private void insertRelIf(RtWorkTicket rtWorkTicket) { private void insertRelIf(RtWorkTicket rtWorkTicket) {
@ -122,5 +158,19 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
.eq(RtWorkTicketToRiskSecurityLibraryType::getRtWorkTicketId, rtWorkTicket.getId())); .eq(RtWorkTicketToRiskSecurityLibraryType::getRtWorkTicketId, rtWorkTicket.getId()));
insertRelIf(rtWorkTicket); insertRelIf(rtWorkTicket);
baseMapper.updateById(rtWorkTicket); baseMapper.updateById(rtWorkTicket);
//中间表
rtWorkTicketToVideoItemMapper.delete(new LambdaQueryWrapper<RtWorkTicketToVideoItem>()
.eq(RtWorkTicketToVideoItem::getRtWorkTicketId, rtWorkTicket.getId()));
insertVideoItemIf(rtWorkTicket);
}
@Override
public void delete(HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id");
RtWorkTicket taskProgress = getById(id);
if (taskProgress == null) {
throw new OpenAlertException("未找到对应实体");
}
removeById(id);
} }
} }

View File

@ -123,6 +123,20 @@ public class VideoItem implements Serializable {
@ApiModelProperty(value = "设备ip") @ApiModelProperty(value = "设备ip")
private String ip; private String ip;
@ApiModelProperty(value = "ylww-监控点编号")
private java.lang.String monitoringPointCode;
@ApiModelProperty(value = "ylww-监控点位置JKDWZ001作业面JKDWZ002料场JKDWZ003车辆出入口JKDWZ004人员出入口JKDWZ005洗轮机JKDWZ006围墙JKDWZ007塔吊JKDWZ008其他")
private java.lang.String monitoringPointLocation;
/**
* 纬度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/** /**
* 项目sn * 项目sn
*/ */
@ -173,18 +187,4 @@ public class VideoItem implements Serializable {
@ApiModelProperty(value = "报警总数") @ApiModelProperty(value = "报警总数")
private java.lang.Integer alarmCount; private java.lang.Integer alarmCount;
@ApiModelProperty(value = "ylww-监控点编号")
private java.lang.String monitoringPointCode;
@ApiModelProperty(value = "ylww-监控点位置JKDWZ001作业面JKDWZ002料场JKDWZ003车辆出入口JKDWZ004人员出入口JKDWZ005洗轮机JKDWZ006围墙JKDWZ007塔吊JKDWZ008其他")
private java.lang.String monitoringPointLocation;
/**
* 纬度
*/
private String latitude;
/**
*经度
*/
private String longitude;
} }

View File

@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -38,6 +40,7 @@ import java.util.stream.Collectors;
**/ **/
@Log4j @Log4j
@Component @Component
@RestController
public class StandardDevTask { public class StandardDevTask {
@Autowired @Autowired
@ -262,7 +265,8 @@ public class StandardDevTask {
* 定时调用外部接口拉取设备实时数据 * 定时调用外部接口拉取设备实时数据
*/ */
@Scheduled(cron = "0 0/2 * * * ?") @Scheduled(cron = "0 0/2 * * * ?")
@SchedulerLock(name = "getStandardData", lockAtMostFor = 1000*60*2, lockAtLeastFor = 1000*60*1) @SchedulerLock(name = "getStandardData", lockAtMostFor = 1000 * 60 * 2, lockAtLeastFor = 1000 * 60 * 1)
@GetMapping("/getStandardData")
public void getStandardData(){ public void getStandardData(){
if (isGetStandardData) { if (isGetStandardData) {
try { try {

View File

@ -23,17 +23,24 @@ import java.util.Map;
public class StandardDevUtil { public class StandardDevUtil {
//账户 //账户
public static final String loginName = "t210127lekd"; //public static final String loginName = "t210127lekd";
public static final String loginName = "2023wenshiduceshi";
//密码 //密码
public static final String password = "t210127lekd"; //public static final String password = "t210127lekd";
public static final String url = "http://iot.0531yun.cn/wsjc"; public static final String password = "2023wenshiduceshi";
//public static final String url = "http://iot.0531yun.cn/wsjc";
public static final String url = "https://www.0531yun.com";
private static String userId = ""; private static String userId = "";
public static String getLoginUserId() { public static String getLoginUserId() {
Map<String, String> param = new HashMap<>(); Map<String, String> param = new HashMap<>();
param.put("loginName", loginName); param.put("loginName", loginName);
param.put("password", password); param.put("password", password);
String result = HttpUtil.post(url + "/app/Login", JSONUtil.toJsonStr(param)); String urlString = url + "/app/Login";
String body = JSONUtil.toJsonStr(param);
log.info("url:{},body:{}", urlString, body);
String result = HttpUtil.post(urlString, body);
log.info("result:{}", result);
if (StringUtils.isNotEmpty(result)) { if (StringUtils.isNotEmpty(result)) {
JSONObject object = JSONObject.parseObject(result); JSONObject object = JSONObject.parseObject(result);
String code = String.valueOf(object.get("code").toString()); String code = String.valueOf(object.get("code").toString());
@ -53,8 +60,10 @@ public class StandardDevUtil {
param.put("groupId", groupId); param.put("groupId", groupId);
Map<String, String> headerMap = new HashMap<>(); Map<String, String> headerMap = new HashMap<>();
headerMap.put("userId", userId); headerMap.put("userId", userId);
String result = get(url + "/app/GetDeviceData", param, headerMap); String urlString = url + "/app/GetDeviceData";
//log.info("result:"+result); log.info("url:{},param:{},headerMap:{}", urlString, param, headerMap);
String result = get(urlString, param, headerMap);
log.info("result:{}", result);
if (StringUtils.isNotEmpty(result)) { if (StringUtils.isNotEmpty(result)) {
log.info("------------获取标样室实时数据结果---------"); log.info("------------获取标样室实时数据结果---------");
JSONObject object = JSONObject.parseObject(result); JSONObject object = JSONObject.parseObject(result);
@ -73,8 +82,7 @@ public class StandardDevUtil {
} }
public static void main(String[] args) { public static void main(String[] args) {
//log.info(getLoginUserId()); getLoginUserId();
//log.info(getDeviceData("").toJSONString()); getDeviceData("");
} }
} }