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;
import com.zhgd.redis.lock.RedisRepository;
import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService;
import io.swagger.annotations.Api;
@ -13,6 +14,7 @@ import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.IOUtils;
import org.springframework.core.io.ClassPathResource;
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\"}")
@PostMapping(value = "/delete")
public Result<RtRiskInventoryType> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id");
Result<RtRiskInventoryType> result = new Result<RtRiskInventoryType>();
RtRiskInventoryType rtRiskInventoryType = rtRiskInventoryTypeService.getById(id);
if (rtRiskInventoryType == null) {
result.error500("未找到对应实体");
} else {
boolean ok = rtRiskInventoryTypeService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
return result;
rtRiskInventoryTypeService.delete(map);
return Result.ok();
}
/**

View File

@ -133,23 +133,20 @@ public class RtRiskSecurityLibraryTypeConcreteController {
} else {
boolean ok = rtRiskSecurityLibraryTypeConcreteService.removeById(MapUtils.getString(map, "id"));
if (ok) {
result.successMsg(MessageUtil.get("deleteSucess"));
}
}
result.successMsg(MessageUtil.get("deleteSucess"));
}
}
return result;
}
return result;
}
@ApiOperation(value = "查询作业必备条件和作业过程风险控制措施", notes = "查询作业必备条件和作业过程风险控制措施", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "rtRiskSecurityLibraryTypeIdList", value = "榕图-风险安全库-作业类型、工序及部位idList", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/queryJobPrerequisite")
public Result<RtRiskSecurityLibraryTypeConcrete> queryJobPrerequisite(@RequestBody Map<String, Object> map) {
return Result.success(rtRiskSecurityLibraryTypeConcreteService.queryJobPrerequisite(map));
}
@OperLog(operModul = "质量管理", operType = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用", operDesc = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用")
@ApiOperation(value = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用", notes = "批量修改榕图-风险安全库-作业风险及条件具体项启用禁用", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目唯一标识", paramType = "query", 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")
public Result updateRtRiskSecurityLibraryTypeConcreteUsable(@RequestBody Map<String, Object> map) {
rtRiskSecurityLibraryTypeConcreteService.updateRtRiskSecurityLibraryTypeConcreteUsable(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\"}")
@PostMapping(value = "/delete")
public Result<RtWorkTicket> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
String id = MapUtils.getString(map, "id");
Result<RtWorkTicket> result = new Result<RtWorkTicket>();
RtWorkTicket rtWorkTicket = rtWorkTicketService.getById(id);
if (rtWorkTicket == null) {
result.error500("未找到对应实体");
} else {
boolean ok = rtWorkTicketService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
return result;
rtWorkTicketService.delete(map);
return Result.ok();
}
/**

View File

@ -32,12 +32,6 @@ public class RtRiskInventoryType implements Serializable {
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "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)
@ApiModelProperty(value = "预防措施")
private java.lang.String precaution;
@ApiModelProperty(value = "前置任务id列表")
private java.lang.String predecessorIds;
@ApiModelProperty(value = "备注")
private java.lang.String remark;
@TableField(exist = false)
@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.TableName;
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.ApiModelProperty;
import lombok.Data;
@ -196,4 +198,11 @@ public class RtWorkTicket implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位idList")
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);
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 org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: 榕图-工作票和风险安全库-作业类型工序及部位中间表
@ -12,5 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
@Mapper
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
${ew.customSqlSegment}
</select>
<delete id="deleteChild">
delete
from rt_risk_inventory_type
where find_in_set(#{id}, predecessor_ids)
</delete>
</mapper>

View File

@ -1,20 +1,30 @@
<?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.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"/>
<collection property="rtRiskSecurityLibraryTypeIdList" column="id" ofType="string"
select="queryRtWorkTicketToRiskSecurityLibraryTypeId"/>
<association property="projectVideoConfig" javaType="com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig"
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>
<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
left join project_video_config pvc on pvc.project_sn=rwt.project_sn and is_enable=1
${ew.customSqlSegment}
</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>

View File

@ -1,4 +1,10 @@
<?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.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>

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);
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);
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 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.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.mapper.RtRiskInventoryTypeMapper;
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.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -68,6 +69,14 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
@Override
public void add(RtRiskInventoryType rtRiskInventoryType) {
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);
}
@ -105,18 +114,96 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
if (list == null || list.size() == 0) {
throw new OpenAlertException(MessageUtil.get("excelNotDataErr"));
}
Map<String, RtRiskSecurityLibraryType> libraryObj = new HashMap<>();
for (Map<String, String> importInfo : list) {
//风险编号 工序 风险可能导致的后果 风险评定值D 风险级别 风险控制关键因素 预控措施 备注
if (importInfo == null || importInfo.get("风险编号") == null || importInfo.get("风险编号").equals("")) {
continue;
List<RtRiskInventoryType> readTypeList = list.stream().map(m -> {
RtRiskInventoryType type = new RtRiskInventoryType();
type.setProcessName(m.get("工序"));
//补零
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) {

View File

@ -1,11 +1,13 @@
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.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryDisable;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryTypeConcrete;
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.RtRiskSecurityLibraryTypeMapper;
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) {
RtRiskSecurityLibraryTypeConcrete rtRiskSecurityLibraryTypeConcrete = rtRiskSecurityLibraryTypeConcreteMapper.selectById(id);
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.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.rt.entity.RtRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicket;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToRiskSecurityLibraryType;
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.project.mapper.ProjectVideoConfigMapper;
import com.zhgd.xmgl.modules.rt.entity.*;
import com.zhgd.xmgl.modules.rt.mapper.*;
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.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -25,6 +26,10 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Description: 榕图-工作票
@ -41,6 +46,15 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
private RtWorkTicketToRiskSecurityLibraryTypeMapper rtWorkTicketToRiskSecurityLibraryTypeMapper;
@Autowired
private RtRiskSecurityLibraryTypeMapper rtRiskSecurityLibraryTypeMapper;
@Autowired
private RtWorkTicketToVideoItemMapper rtWorkTicketToVideoItemMapper;
@Autowired
private VideoItemMapper videoItemMapper;
@Autowired
private ProjectVideoConfigMapper projectVideoConfigMapper;
@Autowired
private RtRiskSecurityLibraryTypeConcreteMapper rtRiskSecurityLibraryTypeConcreteMapper;
@Override
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) {
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;
}
@ -74,6 +96,20 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
setRtRiskSecurityLibraryTypeStrIf(rtWorkTicket);
baseMapper.insert(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) {
@ -122,5 +158,19 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
.eq(RtWorkTicketToRiskSecurityLibraryType::getRtWorkTicketId, rtWorkTicket.getId()));
insertRelIf(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")
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
*/
@ -173,18 +187,4 @@ public class VideoItem implements Serializable {
@ApiModelProperty(value = "报警总数")
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.scheduling.annotation.Scheduled;
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.SimpleDateFormat;
@ -38,6 +40,7 @@ import java.util.stream.Collectors;
**/
@Log4j
@Component
@RestController
public class StandardDevTask {
@Autowired
@ -262,7 +265,8 @@ public class StandardDevTask {
* 定时调用外部接口拉取设备实时数据
*/
@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(){
if (isGetStandardData) {
try {

View File

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