Browse Source

# 巡检配置优化

zhongwei
haungxing 1 year ago
parent
commit
01dd0155c4
  1. 4
      hzims-biz-common/pom.xml
  2. 46
      hzims-biz-common/src/main/java/com/hnac/hzims/common/pojo/ProcessWorkFlowResponse.java
  3. 22
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/Constants.java
  4. 49
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/ObjectConstants.java
  5. 17
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/dto/ContentDTO.java
  6. 26
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/dto/ContentDefinitionDTO.java
  7. 27
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/dto/ProjectDTO.java
  8. 92
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ContentDefinitionEntity.java
  9. 14
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ContentEntity.java
  10. 3
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ProjectEntity.java
  11. 25
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/feign/IContentClient.java
  12. 63
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/feign/IContentDefinitionClient.java
  13. 29
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/feign/IProjectClient.java
  14. 29
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/vo/ContentDefinitionVO.java
  15. 23
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/vo/ContentVO.java
  16. 29
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/wrapper/ContentDefinitionWrapper.java
  17. 26
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/wrapper/ContentWrapper.java
  18. 10
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/dao/ContentDefinitionMapper.java
  19. 4
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ObjectEntity.java
  20. 36
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/feign/ContentClient.java
  21. 61
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/feign/ContentDefinitionClient.java
  22. 35
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/feign/ProjectClient.java
  23. 10
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/mapper/ContentDefinitionMapper.java
  24. 19
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/IContentDefinitionService.java
  25. 7
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/ObjectService.java
  26. 15
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/ProjectService.java
  27. 46
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ContentDefinitionServiceImpl.java
  28. 78
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ObjectServiceImpl.java
  29. 63
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ProjectServiceImpl.java
  30. 51
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/web/ContentDefinitionController.java
  31. 17
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/web/ObjectController.java
  32. 58
      hzims-service/inspect/src/main/resources/db/1.0.1.sql

4
hzims-biz-common/pom.xml

@ -22,6 +22,10 @@
<artifactId>blade-core-auto</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-common</artifactId>
</dependency>
<!--Json 工具 Start-->
<dependency>
<groupId>com.alibaba</groupId>

46
hzims-biz-common/src/main/java/com/hnac/hzims/common/pojo/ProcessWorkFlowResponse.java

@ -0,0 +1,46 @@
package com.hnac.hzims.common.pojo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @ClassName ProcessWorkFlowResponse
* @description:
* @author: hx
* @create: 2023-06-07 19:39
* @Version 4.0
**/
@Data
public class ProcessWorkFlowResponse implements Serializable {
/**当前任务ID**/
private String taskId;
/**当前任务名称**/
private String taskName;
/**当前环节流程ID**/
@NotNull
private String processDefinitionKey;
/** 业务Id **/
private String businessKey;
/** 流程实例key **/
private String processInstanceId;
/** 下一环节处理人 **/
private String nextStepOperator;
/** 票据表单 **/
private Object variables;
/** 根据handleType区分是用户还是候选组角色 标识 0是用户 1是角色 **/
private String handleType;
/** 用户Id **/
private String userId;
}

22
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/Constants.java

@ -1,8 +1,28 @@
package com.hnac.hzinfo.inspect;
import lombok.Getter;
/**
* @Author: py
*/
public class Constants {
public final static String APP_NAME = "hzinfo-inspect";
public final static String APP_NAME = "hzinfo-inspect-hx";
/**
* 巡检类型, 0普通巡检1视频自动巡检2机器人巡检
*/
@Getter
public enum InspectTypeEnum{
/**0普通巡检**/
COMMON("0"),
/**1视频自动巡检**/
VIDEO("1"),
/**2机器人巡检**/
ROBOT("2");
private final String val;
InspectTypeEnum(String val){
this.val = val;
}
}
}

49
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/ObjectConstants.java

@ -0,0 +1,49 @@
package com.hnac.hzinfo.inspect.obj;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author huangxing
* 巡检配置常量
*/
public interface ObjectConstants {
/**
* 巡检模板重复记录类型
*/
@AllArgsConstructor
@Getter
enum TemplateRecordEnum {
/**允许**/
ALLOW("1","允许"),
/**禁止**/
FORBIDDEN("0","禁止")
;
private final String recordType;
private final String describe;
}
@Getter
@AllArgsConstructor
enum TemplateEnableEnum {
/**启用**/
YES(0),
/**弃用**/
no(1)
;
private final Integer enableType;
}
@Getter
@AllArgsConstructor
enum ProjectEnableEnum {
/**启用**/
YES(0),
/**弃用**/
no(1)
;
private final Integer enableType;
}
}

17
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/dto/ContentDTO.java

@ -0,0 +1,17 @@
package com.hnac.hzinfo.inspect.obj.dto;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import java.io.Serializable;
/**
* @ClassName ContentDTO
* @description:
* @author: hx
* @create: 2023-06-26 19:22
* @Version 4.0
**/
public class ContentDTO extends ContentEntity implements Serializable {
}

26
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/dto/ContentDefinitionDTO.java

@ -0,0 +1,26 @@
package com.hnac.hzinfo.inspect.obj.dto;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @ClassName ContentDefinitionDTO
* @description: 巡检定义VO对象
* @author: hx
* @create: 2023-06-20 19:00
* @Version 4.0
**/
@Data
@ApiModel("巡检定义DTO对象")
@EqualsAndHashCode
public class ContentDefinitionDTO extends ContentDefinitionEntity implements Serializable {
@ApiModelProperty("id,按逗号分隔")
private String ids;
}

27
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/dto/ProjectDTO.java

@ -0,0 +1,27 @@
package com.hnac.hzinfo.inspect.obj.dto;
import com.hnac.hzinfo.inspect.obj.entity.ProjectEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* @ClassName ProjectDTO
* @description: 设备巡检项目DTO对象
* @author: hx
* @create: 2023-06-29 16:06
* @Version 4.0
**/
@ApiModel("设备巡检项目DTO对象")
@Data
@EqualsAndHashCode
public class ProjectDTO extends ProjectEntity implements Serializable {
@ApiModelProperty("巡检内容DTO对象")
private List<ContentDTO> contentDTOList;
}

92
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ContentDefinitionEntity.java

@ -0,0 +1,92 @@
package com.hnac.hzinfo.inspect.obj.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.support.QueryField;
import org.springblade.core.mp.support.SqlCondition;
import org.springblade.core.tenant.mp.TenantEntity;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* @ClassName ContentDefinitionEntity
* @description: 巡检内容定义
* @author: hx
* @create: 2023-06-20 18:27
* @Version 4.0
**/
@Data
@EqualsAndHashCode
public class ContentDefinitionEntity extends TenantEntity implements Serializable {
@ApiModelProperty(value = "内容编码")
private String code;
@ApiModelProperty(value = "内容名称,长度必须为1到128")
@Size(min=1,max = 128,message ="内容名称长度必须为1到128")
private String name;
@ApiModelProperty(value = "内容描述,长度必须为0到512")
@Size(min=0,max = 512,message ="内容描述长度必须为0到512")
private String description;
@ApiModelProperty(value = "记录类型 0不记录 1仅选择 2仅记值 3选择并记值")
private String recordType;
@ApiModelProperty(value = "检测类型")
private String checkType;
@ApiModelProperty(value = "检测类型子类")
private String checkTypeSon;
// @JsonSerialize(nullsUsing = NullSerializer.class)
// @ApiModelProperty(value = "表针识别,表盘ID")
// private Long clockId;
// @JsonSerialize(nullsUsing = NullSerializer.class)
// @ApiModelProperty(value = "视频巡检摄像机ID")
// private Long cameraId;
@ApiModelProperty(value = "记值方式为选择时选择值")
private String dictType;
// @ApiModelProperty(value = "上限值")
// private Double upLimit;
//
// @ApiModelProperty(value = "下限值")
// private Double downLimit;
@ApiModelProperty(value = "问题排除建议")
private String suggestion;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = " inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检")
private String supportAutoVideo;
// @ApiModelProperty(value = "开关/灯/表盘在摄像机可视面二维坐标位置,例如:2,1 表示第三行第二列,行列均从0开始记录,默认 0,0,如果有多张图则:0,0,1( 最后一位表示所在图片,最后一位1表示第二张图),默认0,0,0")
// private String cameraAddr;
@ApiModelProperty(value = "其他参数,例如多联断路器内断路器的个数")
private String otherParam;
@ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开")
private String checkVal;
@ApiModelProperty(value = "绑定物模型标识")
@QueryField(condition = SqlCondition.EQUAL)
private String modelSignage;
@ApiModelProperty(value = "绑定物模型属性标识")
@QueryField(condition = SqlCondition.EQUAL)
private String attrSignage;
@ApiModelProperty(value = "绑定物模型属性标识")
@QueryField(condition = SqlCondition.LIKE)
private String attrName;
}

14
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ContentEntity.java → hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ContentEntity.java

@ -127,5 +127,19 @@ public class ContentEntity extends TenantEntity {
@ApiModelProperty(value = "校验值,用来判断当前值是否正确:枚举数据通过 “ , ”隔开, 区间通过~隔开")
private String checkVal;
@ApiModelProperty(value = "绑定物模型标识")
private String modelSignage;
@ApiModelProperty(value = "绑定物模型属性标识")
private String attrSignage;
@ApiModelProperty(value = "绑定物模型属性标识")
private String attrName;
@ApiModelProperty(value = "绑定采集点ID")
private String facDeviceId;
@ApiModelProperty(value = "绑定采集点名称")
private String facDeviceName;
}

3
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ProjectEntity.java → hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ProjectEntity.java

@ -60,4 +60,7 @@ public class ProjectEntity extends TenantEntity {
@ApiModelProperty(value = "inspectType 支持的巡检类型 0普通巡检,1视频自动巡检,2机器人巡检")
private String supportAutoVideo;
@ApiModelProperty("设备编号")
private String emCode;
}

25
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/feign/IContentClient.java

@ -0,0 +1,25 @@
package com.hnac.hzinfo.inspect.obj.feign;
import com.hnac.hzinfo.inspect.Constants;
import com.hnac.hzinfo.inspect.obj.vo.ContentVO;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(value = Constants.APP_NAME)
public interface IContentClient {
String API_PREFIX = "/feign/content";
String DETAIL = API_PREFIX + "/detail";
String SAVE_BATCH = API_PREFIX + "/saveBatch";
String LIST = API_PREFIX + "/list";
String SAVE_OR_UPDATE_BATCH = API_PREFIX + "/saveOrUpdateBatch";
/**
* 根据ID查询设备巡检内容详情
* @param id 主键ID
* @return
*/
@GetMapping(DETAIL)
R<ContentVO> detail(Long id);
}

63
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/feign/IContentDefinitionClient.java

@ -0,0 +1,63 @@
package com.hnac.hzinfo.inspect.obj.feign;
import com.hnac.hzinfo.inspect.Constants;
import com.hnac.hzinfo.inspect.obj.dto.ContentDefinitionDTO;
import com.hnac.hzinfo.inspect.obj.vo.ContentDefinitionVO;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @ClassName IContentDefinitionClient
* @description:
* @author: hx
* @create: 2023-06-26 14:15
* @Version 4.0
**/
@FeignClient(value = Constants.APP_NAME)
public interface IContentDefinitionClient {
String API_PREFIX = "/feign/content/definition";
String DETAIL = API_PREFIX + "/detail";
String SAVE_BATCH = API_PREFIX + "/saveBatch";
String LIST = API_PREFIX + "/list";
String SAVE_OR_UPDATE_BATCH = API_PREFIX + "/saveOrUpdateBatch";
/**
* 查看巡检内容定义详情
* @param id 主键
* @return
*/
@GetMapping(DETAIL)
R<ContentDefinitionVO> detail(@RequestParam Long id);
/**
* 批量保存巡检内容定义
* @param request ContentDefinitionDTO列表
* @return
*/
@PostMapping(SAVE_BATCH)
R<Boolean> saveBatch(@RequestBody List<ContentDefinitionDTO> request);
/**
* 查询列表
* @param request 筛选条件
* @return
*/
@GetMapping(LIST)
R<List<ContentDefinitionVO>> list(ContentDefinitionDTO request);
/**
* 批量更新
* @param request
* @return
*/
@GetMapping(SAVE_OR_UPDATE_BATCH)
R<Boolean> saveOrUpdateBatch(List<ContentDefinitionDTO> request);
}

29
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/feign/IProjectClient.java

@ -0,0 +1,29 @@
package com.hnac.hzinfo.inspect.obj.feign;
import com.hnac.hzinfo.inspect.Constants;
import com.hnac.hzinfo.inspect.obj.dto.ProjectDTO;
import com.hnac.hzinfo.inspect.obj.entity.ProjectEntity;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.List;
@FeignClient(value = Constants.APP_NAME)
public interface IProjectClient {
String API_PREFIX = "/feign/project";
String ADD_PROJECT_AND_CONTENT = API_PREFIX + "/addProjectAndContent";
/**
* 批量新增/更新项目
* @param request ProjectEntity 列表
* @return
*/
@PostMapping(ADD_PROJECT_AND_CONTENT)
R<Boolean> addProjectAndContent(@RequestBody @Valid List<ProjectDTO> request);
}

29
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/vo/ContentDefinitionVO.java

@ -0,0 +1,29 @@
package com.hnac.hzinfo.inspect.obj.vo;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @ClassName ContentDefinitionVO
* @description:
* @author: hx
* @create: 2023-06-20 19:00
* @Version 4.0
**/
@Data
@EqualsAndHashCode
@ApiModel("巡检内容定义VO对象")
public class ContentDefinitionVO extends ContentDefinitionEntity implements Serializable {
@ApiModelProperty("创建人名称")
private String creatorName;
@ApiModelProperty("更新人名称")
private String updateUserName;
}

23
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/vo/ContentVO.java

@ -0,0 +1,23 @@
package com.hnac.hzinfo.inspect.obj.vo;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @ClassName ContentVO
* @description:
* @author: hx
* @create: 2023-06-26 19:20
* @Version 4.0
**/
@EqualsAndHashCode
@Data
@ApiModel(value = "设备巡检内容VO对象",description = "设备巡检内容VO对象")
public class ContentVO extends ContentEntity implements Serializable {
}

29
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/wrapper/ContentDefinitionWrapper.java

@ -0,0 +1,29 @@
package com.hnac.hzinfo.inspect.obj.wrapper;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import com.hnac.hzinfo.inspect.obj.vo.ContentDefinitionVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.Optional;
/**
* @ClassName ContentDefinitionWrapper
* @description: 巡检内容定义 entity -> VO 转换类
* @author: hx
* @create: 2023-06-20 19:04
* @Version 4.0
**/
public class ContentDefinitionWrapper extends BaseEntityWrapper<ContentDefinitionEntity, ContentDefinitionVO> {
public static ContentDefinitionWrapper build() {
return new ContentDefinitionWrapper();
}
@Override
public ContentDefinitionVO entityVO(ContentDefinitionEntity entity) {
ContentDefinitionVO definitionVO = BeanUtil.copy(entity, ContentDefinitionVO.class);
return definitionVO;
}
}

26
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/obj/wrapper/ContentWrapper.java

@ -0,0 +1,26 @@
package com.hnac.hzinfo.inspect.obj.wrapper;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import com.hnac.hzinfo.inspect.obj.vo.ContentVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
/**
* @ClassName ContentWrapper
* @description:
* @author: hx
* @create: 2023-06-26 19:28
* @Version 4.0
**/
public class ContentWrapper extends BaseEntityWrapper<ContentEntity, ContentVO> {
public static ContentWrapper build() {
return new ContentWrapper();
}
@Override
public ContentVO entityVO(ContentEntity entity) {
ContentVO contentVO = BeanUtil.copy(entity, ContentVO.class);
return contentVO;
}
}

10
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/dao/ContentDefinitionMapper.java

@ -0,0 +1,10 @@
package com.hnac.hzinfo.inspect.obj.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ContentDefinitionMapper extends BaseMapper<ContentDefinitionEntity> {
}

4
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/entity/ObjectEntity.java

@ -101,4 +101,8 @@ public class ObjectEntity extends TenantEntity {
@TableField(exist = false)
@ApiModelProperty(value = "对象危险点详情list")
private List<DangerSourceEntity> dangerSources;
@ApiModelProperty(value = "设备编号,按逗号分隔")
@QueryField(condition = SqlCondition.LIKE)
private String emCodes;
}

36
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/feign/ContentClient.java

@ -0,0 +1,36 @@
package com.hnac.hzinfo.inspect.obj.feign;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import com.hnac.hzinfo.inspect.obj.services.ContentService;
import com.hnac.hzinfo.inspect.obj.vo.ContentVO;
import com.hnac.hzinfo.inspect.obj.wrapper.ContentWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.RestController;
import java.util.Optional;
/**
* @ClassName ContentClient
* @description: 设备巡检内容 feign 接口实现类
* @author: hx
* @create: 2023-06-26 19:49
* @Version 4.0
**/
@AllArgsConstructor
@Slf4j
@RestController
public class ContentClient extends BladeController implements IContentClient {
private final ContentService contentService;
@Override
public R<ContentVO> detail(Long id) {
ContentEntity entity = contentService.getById(id);
return R.data(Optional.ofNullable(entity).map(content -> ContentWrapper.build().entityVO(content)).orElse(null));
}
}

61
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/feign/ContentDefinitionClient.java

@ -0,0 +1,61 @@
package com.hnac.hzinfo.inspect.obj.feign;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.hnac.hzinfo.inspect.obj.dto.ContentDefinitionDTO;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import com.hnac.hzinfo.inspect.obj.services.IContentDefinitionService;
import com.hnac.hzinfo.inspect.obj.vo.ContentDefinitionVO;
import com.hnac.hzinfo.inspect.obj.wrapper.ContentDefinitionWrapper;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import oracle.jdbc.proxy.annotation.Post;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
/**
* @ClassName ContentDefinitionClient
* @description: 巡检内容定义feign接口
* @author: hx
* @create: 2023-06-26 14:20
* @Version 4.0
**/
@RestController
@AllArgsConstructor
@Slf4j
public class ContentDefinitionClient implements IContentDefinitionClient {
private final IContentDefinitionService contentDefinitionService;
@Override
@GetMapping(DETAIL)
public R<ContentDefinitionVO> detail(@RequestParam Long id) {
ContentDefinitionEntity entity = contentDefinitionService.getById(id);
return R.data(Optional.ofNullable(entity).map(content -> ContentDefinitionWrapper.build().entityVO(content)).orElse(null));
}
@Override
@PostMapping(SAVE_BATCH)
public R<Boolean> saveBatch(@RequestBody List<ContentDefinitionDTO> request) {
List<ContentDefinitionEntity> list = JSONArray.parseArray(JSON.toJSONString(request), ContentDefinitionEntity.class);
return R.data(contentDefinitionService.saveBatch(list));
}
@Override
@GetMapping(LIST)
public R<List<ContentDefinitionVO>> list(ContentDefinitionDTO request) {
return R.data(contentDefinitionService.list(request));
}
@Override
@PostMapping(SAVE_OR_UPDATE_BATCH)
public R<Boolean> saveOrUpdateBatch(List<ContentDefinitionDTO> request) {
List<ContentDefinitionEntity> list = JSONArray.parseArray(JSON.toJSONString(request), ContentDefinitionEntity.class);
return R.data(contentDefinitionService.saveOrUpdateBatch(list));
}
}

35
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/feign/ProjectClient.java

@ -0,0 +1,35 @@
package com.hnac.hzinfo.inspect.obj.feign;
import com.hnac.hzinfo.inspect.obj.dto.ProjectDTO;
import com.hnac.hzinfo.inspect.obj.services.ProjectService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.List;
/**
* @ClassName ProjectClient
* @description:
* @author: hx
* @create: 2023-06-29 16:10
* @Version 4.0
**/
@RestController
@AllArgsConstructor
@Slf4j
public class ProjectClient extends BladeController implements IProjectClient {
private final ProjectService projectService;
@Override
@PostMapping(ADD_PROJECT_AND_CONTENT)
public R<Boolean> addProjectAndContent(@RequestBody @Valid List<ProjectDTO> request) {
return R.data(projectService.addProjectAndContent(request));
}
}

10
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/mapper/ContentDefinitionMapper.java

@ -0,0 +1,10 @@
package com.hnac.hzinfo.inspect.obj.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ContentDefinitionMapper extends BaseMapper<ContentDefinitionEntity> {
}

19
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/IContentDefinitionService.java

@ -0,0 +1,19 @@
package com.hnac.hzinfo.inspect.obj.services;
import com.hnac.hzinfo.inspect.obj.dto.ContentDefinitionDTO;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import com.hnac.hzinfo.inspect.obj.vo.ContentDefinitionVO;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
public interface IContentDefinitionService extends BaseService<ContentDefinitionEntity> {
/**
* 根据筛选条件获取列表
* @param request 筛选条件
* @return
*/
List<ContentDefinitionVO> list(ContentDefinitionDTO request);
}

7
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/ObjectService.java

@ -49,4 +49,11 @@ public interface ObjectService extends BaseService<ObjectEntity> {
void previewQrCode(Long objectId);
List<ObjectOfflineVO> getReDbjectData(String tenantId);
/**
* 新增或修改巡检对象
* @param object
* @return
*/
Boolean submit(ObjectEntity object);
}

15
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/ProjectService.java

@ -3,6 +3,7 @@ package com.hnac.hzinfo.inspect.obj.services;
import java.util.List;
import com.hnac.hzinfo.inspect.obj.dto.ProjectDTO;
import com.hnac.hzinfo.inspect.obj.vo.ProjectOfflineVO;
import org.springblade.core.mp.base.BaseService;
@ -14,4 +15,18 @@ import com.hnac.hzinfo.inspect.obj.entity.ProjectEntity;
public interface ProjectService extends BaseService<ProjectEntity>{
List<ProjectOfflineVO> getProjectData(String tenantId);
/**
* 获取巡检项目目前筛选条件只支持emCode查询想添加条件需自行在Entity内添加QueryField注解
* @param req 筛选条件
* @return
*/
ProjectEntity getOne(ProjectEntity req);
/**
* 新增设备巡检项目以及设备巡检内容以及两者之间的绑定关系
* @param request 设备巡检项目DTO
* @return
*/
Boolean addProjectAndContent(List<ProjectDTO> request);
}

46
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ContentDefinitionServiceImpl.java

@ -0,0 +1,46 @@
package com.hnac.hzinfo.inspect.obj.services.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hnac.hzinfo.inspect.obj.dto.ContentDefinitionDTO;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import com.hnac.hzinfo.inspect.obj.mapper.ContentDefinitionMapper;
import com.hnac.hzinfo.inspect.obj.services.IContentDefinitionService;
import com.hnac.hzinfo.inspect.obj.vo.ContentDefinitionVO;
import com.hnac.hzinfo.inspect.obj.wrapper.ContentDefinitionWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @ClassName ContentDefinitionServiceImpl
* @description: 巡检内容定义service类
* @author: hx
* @create: 2023-06-20 18:48
* @Version 4.0
**/
@Service
@AllArgsConstructor
@Slf4j
public class ContentDefinitionServiceImpl extends BaseServiceImpl<ContentDefinitionMapper, ContentDefinitionEntity>
implements IContentDefinitionService {
@Override
public List<ContentDefinitionVO> list(ContentDefinitionDTO request) {
QueryWrapper<ContentDefinitionEntity> queryWrapper = Condition.getQueryWrapper(BeanUtil.copy(request, ContentDefinitionEntity.class));
LambdaQueryWrapper<ContentDefinitionEntity> lambda = queryWrapper.lambda();
lambda.in(StringUtil.isNotBlank(request.getIds()),ContentDefinitionEntity::getId,Func.toLongList(",",request.getIds()));
return ContentDefinitionWrapper.build().listVO(this.list(lambda));
}
}

78
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ObjectServiceImpl.java

@ -4,30 +4,37 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.google.zxing.BarcodeFormat;
import com.hnac.hzinfo.inspect.Constants;
import com.hnac.hzinfo.inspect.obj.ObjectConstants;
import com.hnac.hzinfo.inspect.obj.entity.*;
import com.hnac.hzinfo.inspect.obj.services.*;
import com.hnac.hzinfo.inspect.obj.utils.CodeUtils;
import com.hnac.hzinfo.inspect.obj.vo.*;
import com.hnac.hzinfo.inspect.plan.PlanContants;
import com.hnac.hzinfo.inspect.utils.HtmlModule;
import com.hnac.hzinfo.inspect.utils.HtmltoPdf;
import com.hnac.hzinfo.inspect.utils.ZxingGenCode;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.hnac.hzinfo.inspect.obj.mapper.InspectObjectMapper;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.io.File;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author h w
@ -45,6 +52,10 @@ public class ObjectServiceImpl extends BaseServiceImpl<InspectObjectMapper, Obje
private ProjectContentService projectContentService;
@Autowired
private TemplateProjectService templateProjectService;
@Autowired
private IObjectDangerService objectDangerService;
@Autowired
private ProjectService projectService;
/** pdf文件存储路径 */
@Value("${hzinfo.task.pdf.file-path}")
@ -201,6 +212,65 @@ public class ObjectServiceImpl extends BaseServiceImpl<InspectObjectMapper, Obje
return this.baseMapper.getReDbjectData(tenantId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean submit(ObjectEntity object) {
if(object.getId()==null && Func.isBlank(object.getCode())){
object.setCode(CodeUtils.randomCode());
}
if(object.getSupportAutoVideo().equals(PlanContants.InspectTypeEnum.COMMON.getVal()) && (Func.isEmpty(object.getObjectDangers()) || object.getObjectDangers().size() == 0)){
throw new ServiceException("对象告警list为空");
}
Assert.isTrue(this.saveOrUpdate(object),() -> {
throw new ServiceException("保存巡检对象失败!");
});
objectDangerService.remove(Wrappers.<ObjectDangerEntity>lambdaQuery().eq(ObjectDangerEntity::getObjectId, object.getId()));
List<ObjectDangerEntity> objectDangers = object.getObjectDangers();
if(CollectionUtil.isNotEmpty(objectDangers)){
objectDangers.stream().forEach(e -> {
e.setObjectId(object.getId());
});
objectDangerService.saveBatch(objectDangers);
}
this.generateTemplate(object);
return true;
}
/**
* 根据巡检对象生成一条同名巡检模板
* @param object 巡检对象
*/
private void generateTemplate(ObjectEntity object) {
// 若巡检对象设备编码存在,则生成巡检模板
if(Func.isNotEmpty(object.getEmCodes())) {
TemplateEntity template = new TemplateEntity();
template.setCode(String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond()));
template.setName(object.getName());
template.setDuplicateRecord(ObjectConstants.TemplateRecordEnum.ALLOW.getRecordType());
template.setSupportAutoVideo(Constants.InspectTypeEnum.COMMON.getVal());
template.setStatus(ObjectConstants.TemplateEnableEnum.YES.getEnableType());
Assert.isTrue(templateService.save(template),() -> {
throw new ServiceException("保存巡检模板失败!");
});
// 保存巡检对象与巡检模板的绑定关系
ObjectTemplateEntity banding = ObjectTemplateEntity.builder()
.templateId(template.getId()).objectId(object.getId()).code(template.getCode())
.name(template.getName()).supportAutoVideo(object.getSupportAutoVideo()).build();
objectTemplateService.save(banding);
// 保存巡检模板与巡检项目的绑定关系
List<String> emCodeList = Func.toStrList(",", object.getEmCodes());
Function<Integer,TemplateProjectEntity> getTemplateProjectByEmCode = index -> {
ProjectEntity project = new ProjectEntity();
project.setEmCode(emCodeList.get(index));
project.setStatus(ObjectConstants.ProjectEnableEnum.YES.getEnableType());
ProjectEntity one = projectService.getOne(project);
return TemplateProjectEntity.builder().templateId(template.getId()).projectId(one.getId()).sort(index).build();
};
List<TemplateProjectEntity> templateProjectList = Stream.iterate(0,n -> n + 1).limit(emCodeList.size())
.map(getTemplateProjectByEmCode).collect(Collectors.toList());
templateProjectService.saveBatch(templateProjectList);
}
}
/**
* 导出巡检对象为 PDF
* @return pdf 文件路径

63
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ProjectServiceImpl.java

@ -1,23 +1,45 @@
package com.hnac.hzinfo.inspect.obj.services.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hnac.hzinfo.inspect.obj.ObjectConstants;
import com.hnac.hzinfo.inspect.obj.dto.ContentDTO;
import com.hnac.hzinfo.inspect.obj.dto.ProjectDTO;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import com.hnac.hzinfo.inspect.obj.entity.ProjectContentEntity;
import com.hnac.hzinfo.inspect.obj.entity.ProjectEntity;
import com.hnac.hzinfo.inspect.obj.mapper.ProjectMapper;
import com.hnac.hzinfo.inspect.obj.services.ContentService;
import com.hnac.hzinfo.inspect.obj.services.ProjectContentService;
import com.hnac.hzinfo.inspect.obj.services.ProjectService;
import com.hnac.hzinfo.inspect.obj.utils.CodeUtils;
import com.hnac.hzinfo.inspect.obj.vo.ProjectOfflineVO;
import com.hnac.hzinfo.inspect.utils.Condition;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.core.tool.utils.*;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 巡检项目service
*/
@Service
@AllArgsConstructor
@Slf4j
public class ProjectServiceImpl extends BaseServiceImpl<ProjectMapper, ProjectEntity> implements ProjectService {
private final ContentService contentService;
@Override
public boolean save(ProjectEntity entity) {
if (ObjectUtil.isNotEmpty(entity)) {
@ -35,4 +57,41 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectMapper, ProjectEn
public List<ProjectOfflineVO> getProjectData(String tenantId) {
return this.baseMapper.getProjectData(tenantId);
}
@Override
public ProjectEntity getOne(ProjectEntity req) {
LambdaQueryWrapper<ProjectEntity> queryWrapper = Condition.getQueryWrapper(req).lambda();
queryWrapper.eq(Func.isNotEmpty(req.getStatus()),ProjectEntity::getStatus,req.getStatus());
List<ProjectEntity> list = this.list(queryWrapper);
Assert.isTrue(CollectionUtil.isNotEmpty(list) && list.size() == 1,() -> {
throw new ServiceException("getOne方法查询唯一设备巡检项目,index为:" + list.size());
});
return list.get(0);
}
@Override
public Boolean addProjectAndContent(List<ProjectDTO> request) {
ProjectContentServiceImpl projectContentService = SpringUtil.getBean(ProjectContentServiceImpl.class);
request.forEach(projectDTO -> {
projectDTO.setCode(CodeUtils.randomCode());
projectDTO.setStatus(ObjectConstants.ProjectEnableEnum.YES.getEnableType());
ProjectEntity project = BeanUtil.copy(projectDTO, ProjectEntity.class);
if(this.save(project)) {
// 保存巡检内容以及添加绑定关系
if(CollectionUtil.isNotEmpty(projectDTO.getContentDTOList())) {
List<ContentDTO> contentDTOList = projectDTO.getContentDTOList();
contentDTOList.forEach(contentDTO -> contentDTO.setCode(CodeUtils.randomCode()));
List<ContentEntity> contentEntityList = JSONArray.parseArray(JSON.toJSONString(contentDTOList),ContentEntity.class);
if(contentService.saveBatch(contentEntityList)) {
// 保存巡检内容以及巡检项目的绑定关系
List<ProjectContentEntity> projectContentList = Stream.iterate(0, n -> n + 1).limit(contentEntityList.size()).map(
index -> ProjectContentEntity.builder().projectId(project.getId()).contentId(contentEntityList.get(index).getId()).sort(index).build()
).collect(Collectors.toList());
projectContentService.saveBatch(projectContentList);
}
}
}
});
return true;
}
}

51
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/web/ContentDefinitionController.java

@ -0,0 +1,51 @@
package com.hnac.hzinfo.inspect.obj.web;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.hnac.hzinfo.inspect.obj.dto.ContentDefinitionDTO;
import com.hnac.hzinfo.inspect.obj.entity.ContentDefinitionEntity;
import com.hnac.hzinfo.inspect.obj.services.IContentDefinitionService;
import com.hnac.hzinfo.inspect.obj.vo.ContentDefinitionVO;
import com.hnac.hzinfo.inspect.obj.wrapper.ContentDefinitionWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName ContentDefinitionController
* @description: 巡检内容定义controller
* @author: hx
* @create: 2023-06-20 19:13
* @Version 4.0
**/
@RestController
@RequestMapping("/content/definition")
@Api(value = "巡检内容定义管理",tags = "巡检内容定义管理")
@AllArgsConstructor
public class ContentDefinitionController extends BladeController {
private final IContentDefinitionService contentDefinitionService;
@GetMapping("/page")
@ApiOperation("分页查询")
@ApiOperationSupport(order = 1)
public R<IPage<ContentDefinitionVO>> page(ContentDefinitionDTO content, Query query) {
QueryWrapper<ContentDefinitionEntity> queryWrapper = Condition.getQueryWrapper(BeanUtil.copy(content, ContentDefinitionEntity.class));
queryWrapper.lambda().eq(Func.isEmpty(content.getCreateDept()),ContentDefinitionEntity::getCreateDept,content.getCreateDept())
.eq(Func.isEmpty(content.getCreateUser()),ContentDefinitionEntity::getCreateUser,content.getCreateUser());
IPage page = contentDefinitionService.page(Condition.getPage(query), queryWrapper);
page.setRecords(ContentDefinitionWrapper.build().listVO(page.getRecords()));
return R.data(page);
}
}

17
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/web/ObjectController.java

@ -145,22 +145,7 @@ public class ObjectController extends BladeController {
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增或修改", notes = "传入object")
public R<Boolean> submit(@Valid @RequestBody ObjectEntity object) {
if(object.getId()==null && Func.isBlank(object.getCode())){
object.setCode(CodeUtils.randomCode());
}
if(object.getSupportAutoVideo().equals(PlanContants.InspectTypeEnum.COMMON.getVal()) && (Func.isEmpty(object.getObjectDangers()) || object.getObjectDangers().size() == 0)){
throw new ServiceException("对象告警list为空");
}
objectService.saveOrUpdate(object);
objectDangerService.remove(Wrappers.<ObjectDangerEntity>lambdaQuery().eq(ObjectDangerEntity::getObjectId, object.getId()));
List<ObjectDangerEntity> objectDangers = object.getObjectDangers();
if(CollectionUtil.isNotEmpty(objectDangers)){
objectDangers.stream().forEach(e -> {
e.setObjectId(object.getId());
});
objectDangerService.saveBatch(objectDangers);
}
return R.success("操作成功!");
return R.data(objectService.submit(object));
}
@PostMapping("/saveBatch")

58
hzims-service/inspect/src/main/resources/db/1.0.1.sql

@ -0,0 +1,58 @@
-- 创建巡检内容定义表结构
CREATE TABLE IF NOT EXISTS `hz_st_re_content_definition` (
`ID` bigint(64) NOT NULL COMMENT 'ID',
`CODE` varchar(18) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容编码:由系统自动生成自动生成',
`NAME` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容名称',
`DESCRIPTION` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容描述',
`RECORD_TYPE` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录类型 0不记录 1仅选择 2仅记值 3选择并记值',
`CHECK_TYPE` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '检测类型 原来数据字典 暂时设计只支持99个类型',
`CREATE_USER` bigint(64) NULL DEFAULT NULL COMMENT '创建人',
`CREATE_DEPT` bigint(64) NULL DEFAULT NULL COMMENT '创建部门',
`CREATE_TIME` datetime NULL DEFAULT NULL COMMENT '创建时间',
`UPDATE_USER` bigint(64) NULL DEFAULT NULL COMMENT '修改人',
`UPDATE_TIME` datetime NULL DEFAULT NULL COMMENT '修改时间',
`STATUS` int(2) NULL DEFAULT 0 COMMENT '状态',
`IS_DELETED` int(2) NOT NULL DEFAULT 0 COMMENT '是否已删除',
`TENANT_ID` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '租户',
`CLOCK_ID` bigint(20) NULL DEFAULT NULL COMMENT '表针识别,表盘ID',
`CAMERA_ID` bigint(20) NULL DEFAULT NULL COMMENT '视频巡检摄像机ID',
`DICT_TYPE` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记值方式为选择时选择值',
`UP_LIMIT` double NULL DEFAULT NULL COMMENT '上限值',
`DOWN_LIMIT` double NULL DEFAULT NULL COMMENT '下限值',
`SUGGESTION` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '问题排除建议',
`SORT` int(11) NULL DEFAULT 0 COMMENT '排序',
`SUPPORT_AUTO_VIDEO` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '是支持的巡检类型 0普通巡检 1视频自动巡检 2机器人巡检',
`CHECK_TYPE_SON` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '存字典表key 检测类型子类 子类的子类通过-隔开例如:1-12',
`CAMERA_ADDR` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开关/灯/表盘在摄像机可视面二维坐标位置 例如:2 1 表示第三行第二列 行列均从0开始记录 默认 0 0 如果有多张图则:0 0 1( 最后一位表示所在图片 最后一位1表示第二张图) 默认0 0 0',
`OTHER_PARAM` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '其他参数 例如多联断路器内断路器的个数',
`CHECK_VAL` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '校验值 用来判断当前值是否正确:枚举数据通过 “ ”隔开 区间通过~隔开',
PRIMARY KEY (`ID`) USING BTREE,
UNIQUE INDEX `UK_OBJECT_CONTENT_CODE`(`CODE`) USING BTREE,
INDEX `idx_is_deleted_tenant_id`(`IS_DELETED`, `TENANT_ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '巡检对象内容' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
-- 巡检内容定义添加物模型标识字段
alter table hz_st_re_content add COLUMN `model_signage` VARCHAR(64) comment '模型标识';
-- 巡检内容定义添加物模型属性标识字段
alter table hz_st_re_content add COLUMN `attr_signage` VARCHAR(50) comment '属性标识';
-- 巡检内容定义添加物模型属性名称字段
alter table hz_st_re_content add COLUMN `attr_name` VARCHAR(64) comment '属性名称';
-- 设备巡检内容添加物模型标识字段
alter table hz_st_re_content add COLUMN `model_signage` VARCHAR(64) comment '模型标识';
-- 设备巡检内容添加物模型属性标识字段
alter table hz_st_re_content add COLUMN `attr_signage` VARCHAR(50) comment '属性标识';
-- 设备巡检内容添加物模型属性名称字段
alter table hz_st_re_content add COLUMN `attr_name` VARCHAR(64) comment '属性名称';
-- 设备巡检内容添加采集点ID字段
alter table hz_st_re_content add COLUMN `fac_device_id` VARCHAR(64) comment '关联的hz3000设备id';
-- 设备巡检内容添加采集点名称字段
alter table hz_st_re_content add COLUMN `fac_device_name` VARCHAR(64) comment '关联的hz3000设备名称';
-- 设备巡检项目添加设备编号字段
alter table hz_st_re_project add COLUMN `em_code` VARCHAR(50) comment '设备编号';
-- 设备巡检对象添加设备字段
alter table hz_st_re_object add COLUMN `em_codes` VARCHAR(255) comment '设备编号,按逗号分隔';
Loading…
Cancel
Save