”袁彬彬push“

This commit is contained in:
ybb 2025-07-29 10:43:20 +08:00
commit c517e99956
530 changed files with 37278 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
/mvnw text eol=lf
*.cmd text eol=crlf

38
.gitignore vendored Normal file
View File

@ -0,0 +1,38 @@
HELP.md
core/target/
data-bus/target/
sip/target/
web/target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
target/
logs/

180
core/pom.xml Normal file
View File

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.dite.znpt</groupId>
<artifactId>parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>core</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Sa-Token 权限认证在线文档https://sa-token.cc -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.43.0</version>
</dependency>
<!-- Sa-Token 整合 RedisTemplate -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-template</artifactId>
<version>1.43.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--mybatis-plus 依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.11</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>com.pig4cloud.excel</groupId>
<artifactId>excel-spring-boot-starter</artifactId>
<version>1.2.7</version>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.22.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!--读取照片EXIF信息-->
<dependency>
<groupId>com.drewnoakes</groupId>
<artifactId>metadata-extractor</artifactId>
<version>2.18.0</version>
</dependency>
<!-- mapstruct驱动包 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.1.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.1.Final</version>
</dependency>
<dependency>
<groupId>javax.sip</groupId>
<artifactId>jain-sip-ri</artifactId>
<version>1.3.0-91</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.microsoft.onnxruntime</groupId>
<artifactId>onnxruntime</artifactId>
<version>1.16.1</version>
</dependency>
<!-- javacv 和 opencv 别同时用 -->
<dependency>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
<version>4.7.0-0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,73 @@
package com.dite.znpt.annotations;
/**
* @author wujinsong
* @date 2021/9/15 3:57 下午
* @description: 查询条件
*/
public enum MatchType {
/**
* filed = value
*/
equal,
/**
* filed > value
*/
gt,
/**
* field >= value
*/
ge,
/**
* field < value
*/
lt,
/**
* field <= value
*/
le,
/**
* field != value
*/
notEqual,
/**
* field like value
*/
like,
/**
* field not like value
*/
notLike,
/**
* field > value
*/
greaterThan,
/**
* field >= value
*/
greaterThanOrEqualTo,
/**
* field < value
*/
lessThan,
/**
* field <= value
*/
lessThanOrEqualTo,
/**
* in
*/
in,
/**
* in for Number
*/
inn,
/**
* field is null
*/
isNull,
/**
* field is not null
*/
isNotNull
}

View File

@ -0,0 +1,27 @@
package com.dite.znpt.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @author wujinsong
* @date 2021/9/15 4:31 下午
* @description:
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface QueryCondition {
// 数据库中字段名,默认为空字符串,则Query类中的字段要与数据库中字段一致
String column() default "";
// equal, like, gt, lt...
MatchType func() default MatchType.equal;
// object是否可以为null
boolean nullable() default false;
// 字符串是否可为空
boolean emptyable() default false;
}

View File

@ -0,0 +1,82 @@
package com.dite.znpt.aspect;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* @date 2022/1/4 7:39 上午
* @description:
*/
@Slf4j
@Aspect
@Component
public class HttpLogAspect {
/**
* 换行符
*/
private static final String LINE_SEPARATOR = System.lineSeparator();
/**
* 自定义切点
*/
@Pointcut("execution(* com.dite.znpt.web..*(..)) ")
public void log() {
}
/**
* 在切点之前织入
*
* @param joinPoint
*/
@Before("log()")
public void doBefore(JoinPoint joinPoint) throws Exception {
// 开始打印请求日志
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
// 打印请求相关参数
log.info("\n=============== Start ===================");
// 打印请求 url
log.info("请求路径 : {}", request.getRequestURL().toString());
// 打印 Http method
log.info("请求方法 : {}", request.getMethod());
// 打印调用 controller 的全路径以及执行方法
log.info("调用方法 : {}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName());
//获取传入目标方法的参数
log.info("请求参数 : {}", JSONUtil.toJsonStr(joinPoint.getArgs()));
}
/**
* 环绕
*
* @param proceedingJoinPoint
* @return
* @throws Throwable
*/
@Around("log()")
public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
long startTime = System.currentTimeMillis();
Object result = proceedingJoinPoint.proceed();
// 打印出参
log.info("响应结果 : {}", JSONUtil.toJsonStr(result));
// 执行耗时
log.info("请求耗时 : {} ms", System.currentTimeMillis() - startTime);
log.info("\n=========================================== End ===========================================" + LINE_SEPARATOR);
return result;
}
}

View File

@ -0,0 +1,49 @@
package com.dite.znpt.config;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
@Configuration
public class BeanPostProcessorConfig {
@Bean
public BeanPostProcessor beanPostProcessor() {
return new BeanPostProcessor() {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
handlerMappings(getHandlerMappings(bean));
}
return bean;
}
private <T extends RequestMappingInfoHandlerMapping> void handlerMappings(List<T> mappings) {
List<T> copy = mappings.stream()
.filter(mapping -> mapping.getPatternParser() == null)
.collect(Collectors.toList());
mappings.clear();
mappings.addAll(copy);
}
private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
try {
Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
field.setAccessible(true);
return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new IllegalStateException(e);
}
}
};
}
}

View File

@ -0,0 +1,20 @@
package com.dite.znpt.config;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CustomLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String date = p.getText();
return LocalDateTimeUtil.parse(date, FORMATTER);
}
}

View File

@ -0,0 +1,80 @@
package com.dite.znpt.config;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RuntimeUtil;
import com.dite.znpt.constant.Message;
import com.dite.znpt.exception.ServiceException;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties(prefix = "util")
public class ExtUtilConfig {
@ApiModelProperty("是否开启预处理job")
private Boolean enableImagePreTreatment;
@ApiModelProperty("图片预处理工具路径")
private String imagePreTreatmentPath;
@ApiModelProperty("报告生成工具路径")
private String reportGeneratorPath;
@ApiModelProperty("报告生成工具模板路径")
private String reportGeneratorTemplatePath;
/**
* 参数 缩写 默认值 说明
* --input-dir 必需 输入图片目录路径
* --input-file 必需 输入的单图默认输出到输入值同一目录
* --output-dir 输入目录+"+调整" 输出目录路径
* --gamma 180 阴影检测阈值 (0-255)
* --threshold 253 高光检测阈值 (0-255)
* --config-file naming_config.json 命名规则配置文件路径
* --no-auto-bright 禁用 RAW文件禁用自动亮度调整
* --quiet 禁用 减少控制台输出
* --encoder vitl 深度模型编码器类型 (vits/vitb/vitl/vitg)
* --input-size 518 模型输入图像尺寸
* @param inputFile
* @param outputDir
* @return
*/
public String imagePreTreatment(String inputFile, String outputDir) {
boolean directory = FileUtil.isDirectory(inputFile);
try {
Process exec = RuntimeUtil.exec(imagePreTreatmentPath,
directory ? "--input-dir" : "--input-file", inputFile,
"--output-dir", outputDir
);
exec.waitFor();
return RuntimeUtil.getResult(exec);
} catch (InterruptedException e) {
throw new ServiceException(Message.UTIL_EXEC_ERROR + e.getMessage());
}
}
/**
* 功能描述报告生成器
* --turbine_id 指定要生成报告的机组ID
* --output_dir 指定生成报告的输出目录
* --template_dir 指定Word模板文件所在的目录
* @param turbineId 机组id
* @param outputDir 输出dir
* @return {@link String }
* @author cuizhibin
* @date 2025/07/17 14:08
**/
public String reportGenerator(String turbineId, String outputDir) {
try {
Process exec = RuntimeUtil.exec(reportGeneratorPath,
"--turbine_id", turbineId,
"--output_dir", outputDir,
"--template_dir", reportGeneratorTemplatePath
);
exec.waitFor();
return RuntimeUtil.getResult(exec);
} catch (InterruptedException e) {
throw new ServiceException(Message.UTIL_EXEC_ERROR + e.getMessage());
}
}
}

View File

@ -0,0 +1,52 @@
package com.dite.znpt.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeFactory;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;
import org.springframework.util.Assert;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> {
private ObjectMapper objectMapper = new ObjectMapper();
public static final Charset DEFAULT_CHARSET;
private Class<T> clazz;
public FastJson2JsonRedisSerializer(Class<T> clazz) {
this.clazz = clazz;
}
public byte[] serialize(T t) throws SerializationException {
return t == null ? new byte[0] : JSON.toJSONString(t, new SerializerFeature[]{SerializerFeature.WriteClassName}).getBytes(DEFAULT_CHARSET);
}
public T deserialize(byte[] bytes) throws SerializationException {
if (bytes != null && bytes.length > 0) {
String str = new String(bytes, DEFAULT_CHARSET);
return JSON.parseObject(str, this.clazz);
} else {
return null;
}
}
public void setObjectMapper(ObjectMapper objectMapper) {
Assert.notNull(objectMapper, "'objectMapper' must not be null");
this.objectMapper = objectMapper;
}
protected JavaType getJavaType(Class<?> clazz) {
return TypeFactory.defaultInstance().constructType(clazz);
}
static {
DEFAULT_CHARSET = StandardCharsets.UTF_8;
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
}
}

View File

@ -0,0 +1,32 @@
package com.dite.znpt.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* @date 2023/4/5 11:30
* @description: 全局过滤器
*/
@Configuration
public class GlobalCorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
//允许所有域名进行跨域调用
config.addAllowedOriginPattern("*");//替换这个
//允许跨越发送cookie
config.setAllowCredentials(true);
//放行全部原始头信息
config.addAllowedHeader("*");
//允许所有请求方法跨域调用
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}

View File

@ -0,0 +1,34 @@
package com.dite.znpt.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import java.time.LocalDateTime;
/**
* @date 2022/3/20 10:34 上午
* @description:
*/
@Configuration
public class JacksonConfig {
@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
// 全局配置序列化返回 JSON 处理
SimpleModule simpleModule = new SimpleModule();
//JSON Long ==> String
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
simpleModule.addDeserializer(LocalDateTime.class, new CustomLocalDateTimeDeserializer());
objectMapper.registerModule(simpleModule);
return objectMapper;
}
}

View File

@ -0,0 +1,63 @@
package com.dite.znpt.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
public RedisConfig() {
}
@Bean
@Primary
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate();
template.setConnectionFactory(connectionFactory);
FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
serializer.setObjectMapper(mapper);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(serializer);
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(serializer);
template.afterPropertiesSet();
return template;
}
@Bean
public DefaultRedisScript<Long> limitScript() {
DefaultRedisScript<Long> redisScript = new DefaultRedisScript();
redisScript.setScriptText(this.limitScriptText());
redisScript.setResultType(Long.class);
return redisScript;
}
private String limitScriptText() {
return "local key = KEYS[1]\nlocal count = tonumber(ARGV[1])\nlocal time = tonumber(ARGV[2])\nlocal current = redis.call('get', key);\nif current and tonumber(current) > count then\n return tonumber(current);\nend\ncurrent = redis.call('incr', key)\nif tonumber(current) == 1 then\n redis.call('expire', key, time)\nend\nreturn tonumber(current);";
}
}

View File

@ -0,0 +1,70 @@
package com.dite.znpt.config;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.BooleanUtil;
import com.dite.znpt.domain.entity.ImageEntity;
import com.dite.znpt.domain.vo.PartResp;
import com.dite.znpt.enums.FilePathEnum;
import com.dite.znpt.service.ImageService;
import com.dite.znpt.service.PartService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
@Component
@RequiredArgsConstructor
public class Schedule {
private final ImageService imageService;
private final PartService partService;
private final ExtUtilConfig extUtilConfig;
/**
* 功能描述图像预处理持续运行
*
* @author cuizhibin
* @date 2025/07/24 14:23
**/
@Scheduled(fixedRate = 10_000)
public void imagePreTreatment() {
if (BooleanUtil.isFalse(extUtilConfig.getEnableImagePreTreatment())) {
return;
}
List<ImageEntity> list = imageService.lambdaQuery().eq(ImageEntity::getPreTreatment, "0")
.isNotNull(ImageEntity::getPartId)
.isNotNull(ImageEntity::getProjectId).list();
List<String> partIds = list.stream().map(ImageEntity::getPartId).toList();
Map<String, PartResp> partRespMap = partService.listInfos(partIds).stream().collect(Collectors.toMap(PartResp::getPartId, Function.identity()));
// 预处理
List<ImageEntity> successList = new ArrayList<>();
for (ImageEntity image : list) {
PartResp partResp = partRespMap.get(image.getPartId());
FilePathEnum pathEnum = image.getImagePath().contains("temp") ? FilePathEnum.IMAGE_TEMP : FilePathEnum.IMAGE;
String inputFile = pathEnum.getFileAbsolutePath(image.getImagePath());
String outputDir = FilePathEnum.IMAGE.getFileAbsolutePathPrefix()
.concat("已调整")
.concat(FileUtil.FILE_SEPARATOR).concat(partResp.getProjectName())
.concat(FileUtil.FILE_SEPARATOR).concat(partResp.getTurbineName())
.concat(FileUtil.FILE_SEPARATOR).concat(partResp.getPartName());
extUtilConfig.imagePreTreatment(inputFile, outputDir);
String outputFile = outputDir.concat(FileUtil.FILE_SEPARATOR).concat(FileUtil.getName(inputFile));
boolean preSuccess = FileUtil.exist(outputFile);
if(!preSuccess) {
log.warn("图片预处理失败图片id:{},路径:{}", image.getImageId(), inputFile);
continue;
}
image.setPreTreatment(true);
image.setPreImagePath(FilePathEnum.IMAGE.getFileDownPath(outputFile));
successList.add(image);
}
imageService.updateBatchById(successList);
}
}

View File

@ -0,0 +1,53 @@
package com.dite.znpt.config;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.RequestParameterBuilder;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ParameterType;
import springfox.documentation.service.RequestParameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableOpenApi
public class SwaggerConfig {
@Bean
public Docket docket() {
RequestParameterBuilder parameterBuilder = new RequestParameterBuilder();
List<RequestParameter> parameters = new ArrayList<>();
parameterBuilder.name("Authorization")
.description("token值")
.in(ParameterType.HEADER)
// todo 暂时设置为false后续上登录后需要开启
.required(false)
.build();
parameters.add(parameterBuilder.build());
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.enable(true)//开启Swagger文档
.select()
.apis(RequestHandlerSelectors.basePackage("com.dite"))
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.globalRequestParameters(parameters);
}
public ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("智能平台")
.version("1.0")
.build();
}
}

View File

@ -0,0 +1,52 @@
package com.dite.znpt.config;
import cn.hutool.core.collection.ListUtil;
import com.dite.znpt.enums.FilePathEnum;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.List;
/**
* @author Bear.G
* @date 2025/5/23/周五 11:19
* @description
*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
for (FilePathEnum pathEnum : FilePathEnum.values()) {
registry.addResourceHandler(pathEnum.getUrlPath() + "**").addResourceLocations("file:" + pathEnum.getFileAbsolutePathPrefix());
}
}
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
// // 注册 Sa-Token 拦截器定义详细认证规则
// registry.addInterceptor(new SaInterceptor(handler -> {
// SaRouter
// .match("/**") // 拦截的 path 列表可以写多个 */
// .notMatch(excludePaths())
// .check(r -> StpUtil.checkLogin());
// })).addPathPatterns("/**");
// }
// 动态获取哪些 path 可以忽略鉴权
public List<String> excludePaths() {
// 此处仅为示例实际项目你可以写任意代码来查询这些path
ArrayList<String> list = ListUtil.toList("/auth/login", "/favicon.ico", "/favicon.ico", "/doc.html", "/swagger-ui/**", "/swagger-resources", "/webjars/**", "/v3/api-docs/**", "/**/v3/api-docs");
for (FilePathEnum pathEnum : FilePathEnum.values()) {
list.add(pathEnum.getUrlPath() + "**");
}
return list;
}
}

View File

@ -0,0 +1,112 @@
package com.dite.znpt.config;
import ai.onnxruntime.OrtEnvironment;
import ai.onnxruntime.OrtException;
import ai.onnxruntime.OrtSession;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dite.znpt.domain.entity.ModelConfigEntity;
import com.dite.znpt.enums.FilePathEnum;
import com.dite.znpt.mapper.ModelConfigMapper;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Slf4j
@Component
@RequiredArgsConstructor
public class YoloModelRegistry {
private final ModelConfigMapper modelConfigMapper;
private final Map<String, OrtSession> sessionMap = new ConcurrentHashMap<>();
private final Map<String, ModelMetadata> metaMap = new ConcurrentHashMap<>();
private final Map<String, ModelConfigEntity> modelParamMap = new ConcurrentHashMap<>();
@Getter
private final OrtEnvironment environment = OrtEnvironment.getEnvironment();
static {
// 加载opencv动态库
nu.pattern.OpenCV.loadLocally();
}
@PostConstruct
public void loadModelsOnStartup() throws OrtException {
List<ModelConfigEntity> configs = modelConfigMapper.selectList(Wrappers.emptyWrapper());
for (ModelConfigEntity config : configs) {
loadModel(config);
}
}
public void loadModel(ModelConfigEntity config) throws OrtException {
OrtSession.SessionOptions opts = new OrtSession.SessionOptions();
// 使用gpu,需要本机安装过cuda并修改pom.xml不安装也能运行本程序
// sessionOptions.addCUDA(0);
OrtSession session = environment.createSession(FilePathEnum.ATTACH.getFileAbsolutePath(config.getModelPath()), opts);
String labelStr = session.getMetadata().getCustomMetadata().get("names");
// label解析
List<String> labels = new ArrayList<>();
List<double[]> colors = new ArrayList<>();
Pattern pattern = Pattern.compile("'([^']*)'");
Matcher matcher = pattern.matcher(labelStr);
Random random = new Random();
while (matcher.find()) {
labels.add(matcher.group(1));
colors.add(new double[]{random.nextDouble() * 256, random.nextDouble() * 256, random.nextDouble() * 256});
}
sessionMap.put(config.getModelId(), session);
metaMap.put(config.getModelId(), new ModelMetadata(labels.toArray(new String[0]), colors, config));
modelParamMap.put(config.getModelId(), config);
}
public OrtSession getSession(String modelId) {
return sessionMap.get(modelId);
}
public ModelMetadata getMetadata(String modelId) {
return metaMap.get(modelId);
}
public ModelConfigEntity getModelConfig(String modelId) {
return modelParamMap.get(modelId);
}
public void unloadModel(String modelId) {
OrtSession session = sessionMap.remove(modelId);
if (session != null) {
try {
session.close(); // 释放 ONNX runtime 资源
} catch (OrtException e) {
log.warn("模型 {} 卸载时发生错误: {}", modelId, e.getMessage());
}
}
metaMap.remove(modelId);
}
public void reloadModel(ModelConfigEntity modelConfig) throws OrtException {
unloadModel(modelConfig.getModelId());
loadModel(modelConfig);
}
@Data
@AllArgsConstructor
public static class ModelMetadata {
private String[] labels;
private List<double[]> colors;
private ModelConfigEntity config;
}
}

View File

@ -0,0 +1,100 @@
package com.dite.znpt.constant;
/**
* @description: 常量
*/
public class Constants {
/**
* 系统异常
*/
public static final String SYSTEM_EXCEPTION = "000001";
/**
* 服务异常
*/
public static final String SERVICE_EXCEPTION = "000002";
/**
* 参数异常
*/
public static final String PARAMETER_EXCEPTION = "000003";
public static final String SERVICE_EXCEPTION_MESSAGE = "服务开小差,请稍后再试!";
/**
* 账号密码错误
*/
public static final String ACCOUNT_ERROR_EXCEPTION = "500000";
public static final String ACCOUNT_ERROR_EXCEPTION_MESSAGE = "用户名或者密码错误!";
/**
* 账号密码错误
*/
public static final String PASSWORD_ERROR_EXCEPTION = "500001";
public static final String PASSWORD_ERROR_EXCEPTION_MESSAGE = "用户名或者密码错误!";
/**
* 账号密码错误
*/
public static final String PASSWORD_EXCEPTION = "500002";
public static final String PASSWORD_EXCEPTION_MESSAGE = "用户名或者密码错误!";
/**
* 账号停用
*/
public static final String USER_DISABLE_EXCEPTION = "500100";
public static final String USER_DISABLE_EXCEPTION_MESSAGE = "用户已停用!";
/**
* 默认密码
*/
public static final String DEFAULT_PASSWORD_EXCEPTION = "500200";
public static final String DEFAULT_PASSWORD_EXCEPTION_MESSAGE = "初始密码,请修改密码后登陆!";
/**
* 0:代表存在
*/
public static final String DEL_FLAG_0 = "0";
/**
* 1:代表删除
*/
public static final String DEL_FLAG_1 = "1";
/**
* 0:代表启用
*/
public static final Integer STATUS_0 = 0;
/**
* 1:代表停用
*/
public static final Integer STATUS_1 = 1;
/**
* 0:代表显示
*/
public static final String VISIBLE_0 = "0";
/**
* 1:代表隐藏
*/
public static final String VISIBLE_1 = "1";
/**
* 0:代表发布
*/
public static final String STATUS_PUBLISH = "0";
/**
* 1:代表未发布
*/
public static final String STATUS_UNPUBLISH = "1";
}

View File

@ -0,0 +1,82 @@
package com.dite.znpt.constant;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/4/26 23:19
* @Description:
*/
public class Message implements Serializable {
@Serial
private static final long serialVersionUID = 4010434089386946123L;
public static final String IMAGE_IS_EMPTY = "图像信息为空";
public static final String ATTACH_INFO_IS_NOT_EXIST = "附件信息id不存在";
public static final String ATTACH_FILE_IS_NOT_EXIST = "不存在{}的附件文件";
public static final String IMAGE_PATH_IS_NOT_EXIST = "图像地址不存在";
public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在";
public static final String IMAGE_SOURCE_IS_NOT_EXIST = "图像类型不存在";
public static final String DEFECT_ID_IS_NOT_EXIST = "缺陷id不存在";
public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在";
public static final String PROJECT_STATUS_IS_NOT_COMPLETED = "项目[{}]的状态不是已完工";
public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在";
public static final String TURBINE_STATUS_IS_NOT_COMPLETED = "机组[{}]的状态不是已完工";
public static final String PART_ID_IS_NOT_EXIST = "部件id不存在";
public static final String USER_ID_NOT_EXIST = "用户id不存在";
public static final String USER_ID_NOT_EXIST_OR_ILLEGAL = "用户id不存在或者不合法";
public static final String ACCOUNT_EXIST = "用户账号已经存在,请重新输入";
public static final String MOBILE_EXIST = "手机号码已经存在,请重新输入";
public static final String EMAIL_EXIST = "邮箱已经存在,请重新输入";
public static final String IDENTITY_CARD_EXIST = "身份证已经存在,请重新输入";
public static final String OLD_PASSWORD_EQUAL_NEW_PASSWORD = "身份证已经存在,请重新输入";
public static final String OLD_PASSWORD_IS_ERROR = "旧密码错误,请重新输入";
public static final String DEPT_PARENT_NOT_EXIST = "父级部门不存在";
public static final String DEPT_ID_NOT_EXIST = "部门id不存在";
public static final String POST_ID_NOT_EXIST = "岗位id不存在";
public static final String POST_ID_NOT_EXIST_OR_ILLEGAL = "岗位id不存在或者不合法";
public static final String ROLE_ID_NOT_EXIST = "角色id不存在";
public static final String ROLE_CODE_EXIST = "角色编码已经存在";
public static final String ROLE_ID_NOT_EXIST_OR_ILLEGAL = "角色id不存在或者不合法";
public static final String MENU_ID_NOT_EXIST = "菜单id不存在";
public static final String MENU_ID_NOT_EXIST_OR_ILLEGAL = "菜单id不存在或者不合法";
public static final String USER_CERTIFICATION_EXIST = "用户{}已存在{}证书";
public static final String CERTIFICATION_TYPE_ILLEGAL = "证书类型不合法";
public static final String CERTIFICATION_CODE_EXIST = "证书编码已存在";
public static final String CERTIFICATION_ID_NOT_EXIST = "证书id不存在";
public static final String INSURANCE_TYPE_NAME_IS_EXIST = "保险类型名称已存在";
public static final String INSURANCE_TYPE_ID_IS_NOT_EXIST = "保险类型id不存在";
public static final String INSURANCE_COMPANY_NAME_IS_EXIST = "保险公司名称已存在";
public static final String INSURANCE_COMPANY_ID_IS_NOT_EXIST = "保险公司id不存在";
public static final String INSURANCE_INFO_ID_IS_NOT_EXIST = "保险信息id不存在";
public static final String INSURANCE_FILE_IS_NOT_EXIST = "保险文不存在";
public static final String TASK_ID_GROUP_ID_ALL_EMPTY = "任务id和任务组id不可同时为空";
public static final String TASK_STATUS_NOT_PENDING = "任务状态不是未开始";
public static final String TASK_STATUS_NOT_IN_PROGRESS = "任务状态不是进行中";
public static final String TASK_IN_CYCLE = "父级任务存在循环依赖:";
public static final String TASK_GROUP_ID_NOT_EXIST = "任务组id不存在";
public static final String WORK_TIME_START_CAN_NOT_BEFORE_WORK_TIME_END = "下班时间不能早于上班时间";
public static final String REST_TIME_START_CAN_NOT_BEFORE_REST_TIME_END = "休息结束时间不能早于休息开始时间";
public static final String REST_TIME_START_MUST_BETWEEN_WORK_TIME = "休息开始时间必须是在上班时间范围内";
public static final String REST_TIME_END_MUST_BETWEEN_WORK_TIME = "休息结束时间必须是在上班时间范围内";
public static final String EARLY_TIME_LIMIT_CAN_NOT_BEFORE_EARLY_TIME_OFFSET = "早退临界时间不能小于早退豁免时间";
public static final String LATE_TIME_LIMIT_CAN_NOT_BEFORE_LATE_TIME_OFFSET = "迟到临界时间不能小于迟到豁免时间";
public static final String WORK_SHIFT_NAME_EXIST = "班次名称已经存在";
public static final String WORK_SHIFT_NOT_EXIST = "班次不存在";
public static final String WORK_SHIFT_IS_NOT_UNPUBLISH = "班次的状态不是未发布";
public static final String IMAGE_AUTO_MARK_ERROR = "自动标注出错:";
public static final String SUGGESTION_ID_IS_NOT_EXIST = "维修建议id不存在";
public static final String SUGGESTION_LEVEL_TYPE_FORBID_REPEAT = "存在缺陷级别为[{}]缺陷类型为[{}]的维修建议";
public static final String CHECK_SCHEME_ID_IS_NOT_EXIST = "检查方案id不存在";
public static final String INSPECTION_REPORT_ID_IS_NOT_EXIST = "检查报告id不存在";
public static final String UTIL_EXEC_ERROR = "工具执行出错:";
public static final String REPORT_GENERATOR_ERROR = "报告生成出错";
public static final String EQUIPMENT_ID_NOT_EXIST = "设备id不存在";
public static final String EQUIPMENT_SN_EXIST = "设备序列号已经存在";
public static final String EQUIPMENT_STATUS_ERROR_FORBIDDEN_USE = "设备状态不合法,禁止使用";
public static final String EQUIPMENT_USE_RECORD_ID_NOT_EXIST = "设备使用记录id不存在";
public static final String EQUIPMENT_USE_RECORD_STATUS_ERROR = "设备使用记录状态不合法";
public static final String EQUIPMENT_IS_USED = "设备已被使用";
public static final String EQUIPMENT_IS_RETURN = "设备已归还";
}

View File

@ -0,0 +1,62 @@
package com.dite.znpt.context;
//import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.dite.znpt.domain.vo.UserResp;
import com.dite.znpt.service.impl.RedisService;
/**
* @author wujinsong
* @date 2021/11/20 9:43 上午
* @description: 用户context
*/
public class UserContext {
private final RedisService redisService;
public UserContext(RedisService redisService) {
this.redisService = SpringUtil.getBean(RedisService.class);
}
/**
* @author wujinsong
* @date 2021/11/20 10:02 上午
* @description: 获取当前登录用户信息
* @Param []
* @Return com.gaea.common.vo.common.UserInfo
*/
public static UserResp getUserInfo() {
// try {
// String token = StpUtil.getTokenValue();
// if (!StringUtils.isEmpty(token)) {
// String s = redisTemplate.opsForValue().get(token);
// if (!StringUtils.isEmpty(s)) {
// return JSONObject.parseObject(s, UserInfo.class);
// }
// }
// } catch (Exception e) {
// UserInfo userInfo = new UserInfo();
// userInfo.setUsername(Constants.SYSTEM_USER);
// userInfo.setName(Constants.SYSTEM_USER);
// userInfo.setId(Constants.SYSTEM_USER);
// return userInfo;
// }
//TODO
UserResp resp = new UserResp();
// resp.setRoleType("Builder");
return resp;
}
/**
* 功能描述获取角色编码
*
* @return {@link String }
* @author cuizhibin
* @date 2025/04/25 11:23
**/
public static String getRoleCode() {
//TODO
// return getUserInfo().getRoleType();
return null;
}
}

View File

@ -0,0 +1,128 @@
package com.dite.znpt.converts;
import com.dite.znpt.domain.entity.*;
import com.dite.znpt.domain.vo.*;
import org.mapstruct.Mapper;
import org.mapstruct.NullValuePropertyMappingStrategy;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* @Author: gaoxiong
* @Date: 2025/4/26 1:32
* @Description:
*/
@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
public interface Converts {
Converts INSTANCE = Mappers.getMapper(Converts.class);
List<ImageEntity> toImageEntity(List<ImageReq> list);
List<ImageSimpleReq> toImageSimpleReq(List<OutWorkDefectReq> list);
ImageCollectEntity toImageCollectEntity(ImageCollectReq req);
DefectEntity toDefectEntity(DefectReq req);
DefectResp toDefectResp(DefectEntity entity);
ProjectResp toProjectResp(ProjectEntity entity);
ProjectEntity toProjectEntity(ProjectReq req);
TurbineEntity toTurbineEntity(TurbineReq req);
TurbineResp toTurbineResp(TurbineEntity entity);
PartEntity toPartEntity(PartReq req);
PartResp toPartResp(PartEntity entity);
UserResp toUserResp(UserEntity entity);
UserListResp toUserListResp(UserEntity entity);
UserEntity toUserEntity(UserReq req);
DeptEntity toDeptEntity(DeptReq req);
DeptResp toDeptResp(DeptEntity entity);
PostEntity toPostEntity(PostReq req);
List<PostResp> toPostResp(List<PostEntity> list);
PostResp toPostResp(PostEntity entity);
RoleResp toRoleResp(RoleEntity entity);
List<RoleResp> toRoleResp(List<RoleEntity> list);
RoleEntity toRoleEntity(RoleReq req);
MenuEntity toMenuEntity(MenuReq req);
MenuResp toMenuResp(MenuEntity entity);
CertificationEntity toCertificationEntity(CertificationReq req);
CertificationResp toCertificationResp(CertificationEntity entity);
List<CertificationResp> toCertificationResp(List<CertificationEntity> list);
List<InsuranceTypeResp> toInsuranceTypeResp(List<InsuranceTypeEntity> list);
InsuranceTypeResp toInsuranceTypeResp(InsuranceTypeEntity entity);
InsuranceTypeEntity toInsuranceTypeEntity(InsuranceTypeReq req);
List<InsuranceCompanyResp> toInsuranceCompanyResp(List<InsuranceCompanyEntity> list);
InsuranceCompanyResp toInsuranceCompanyResp(InsuranceCompanyEntity entity);
InsuranceCompanyEntity toInsuranceCompanyEntity(InsuranceCompanyReq req);
List<InsuranceInfoResp> toInsuranceInfoResp(List<InsuranceInfoEntity> list);
List<InsuranceAttachResp> toInsuranceAttachResp(List<InsuranceInfoEntity> list);
InsuranceInfoResp toInsuranceInfoResp(InsuranceInfoEntity entity);
InsuranceInfoEntity toInsuranceInfoEntity(InsuranceInfoReq req);
AttachInfoResp toAttacheInfoResp(AttachInfoEntity entity);
List<WorkShiftListResp> toWorkShiftListResp(List<WorkShiftEntity> list);
WorkShiftResp toWorkShiftResp(WorkShiftEntity entity);
WorkShiftEntity toWorkShiftEntity(WorkShiftReq req);
List<MaintainSuggestionResp> toMaintainSuggestionResp(List<MaintainSuggestionEntity> list);
MaintainSuggestionResp toMaintainSuggestionResp(MaintainSuggestionEntity entity);
MaintainSuggestionEntity toMaintainSuggestionEntity(MaintainSuggestionReq req);
List<CheckSchemeResp> toCheckSchemeResp(List<CheckSchemeEntity> list);
CheckSchemeResp toCheckSchemeResp(CheckSchemeEntity entity);
CheckSchemeEntity toCheckSchemeEntity(CheckSchemeReq req);
InspectionReportEntity toInspectionReportEntity(InspectionReportReq req);
InspectionReportCheckInfo toInspectionReportCheckInfo(InspectionReportEntity entity);
InspectionReportReportInfo toInspectionReportReportInfo(InspectionReportEntity entity);
List<InspectionReportSchemeInfo> toInspectionReportSchemeInfo(List<CheckSchemeEntity> list);
AttendanceRecordEntity toAttendanceRecordEntity(AttendanceRecordReq req);
List<AttendanceRecordResp> toAttendanceRecordResp(List<AttendanceRecordEntity> list);
EquipmentEntity toEquipmentUseRecordEntity(EquipmentReq req);
EquipmentUseRecordEntity toEquipmentUseRecordEntity(EquipmentUseRecordReq req);
}

View File

@ -0,0 +1,58 @@
package com.dite.znpt.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @description: 统一定义顶层Entity实体审计 基类
* 基类统一定义id的属性名称数据类型列名映射及生成策略.
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 141481953116476081L;
@ApiModelProperty(value = "创建人id", hidden = true)
private String createBy;
@ApiModelProperty(value = "更新时间", hidden = true)
private String updateBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间", hidden = true)
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "修改人id", hidden = true)
private LocalDateTime updateTime;
@ExcelIgnore
@ApiModelProperty(value = "id集合", example = "[]", notes = "id集合")
@TableField(exist = false)
private List<String> idList;
@ExcelIgnore
@ApiModelProperty(value = "当前页", example = "1", notes = "0")
@TableField(exist = false)
int page = 1;
@ExcelIgnore
@ApiModelProperty(value = "页大小", example = "10", notes = "10")
@TableField(exist = false)
int pageSize = 10;
}

View File

@ -0,0 +1,58 @@
package com.dite.znpt.domain;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 分页查询结果
*/
@Data
public class PageResult<T> {
private static final long serialVersionUID = 1L;
@ApiModelProperty("状态码")
private Integer code;
@ApiModelProperty("返回内容")
private String msg;
@ApiModelProperty("对象列表")
private List<T> rows;
@ApiModelProperty("数据对象")
private Long total;
public PageResult(int code, String msg) {
this.code = code;
this.msg = msg;
}
public PageResult(int code, String msg, List<T> rows, Long total) {
this.code = code;
this.msg = msg;
this.rows = rows;
this.total = total;
}
public static <T> PageResult<T> ok(List<T> rows) {
return ok(rows, (new PageInfo(rows)).getTotal());
}
public static <T> PageResult<T> ok(List<T> rows, Long total) {
return new PageResult(200, "操作成功", rows, total);
}
public static <T> PageResult<T> ok(List<T> rows, Integer total) {
return new PageResult(200, "操作成功", rows, (long)total);
}
public static <T> PageResult<T> error() {
return error("操作失败");
}
public static <T> PageResult<T> error(String msg) {
return new PageResult(500, msg);
}
}

View File

@ -0,0 +1,77 @@
package com.dite.znpt.domain;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dite.znpt.annotations.QueryCondition;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.annotation.AnnotationUtils;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Collection;
public class QueryWrapperBuilder {
public static <T> QueryWrapper<T> build(Object queryDTO) {
QueryWrapper<T> wrapper = new QueryWrapper<>();
Field[] fields = ReflectUtil.getFields(queryDTO.getClass());
for (Field field : fields) {
QueryCondition qc = AnnotationUtils.getAnnotation(field, QueryCondition.class);
if (qc == null) continue;
TableField tf = AnnotationUtils.getAnnotation(field, TableField.class);
field.setAccessible(true);
try {
Object value = field.get(queryDTO);
// 获取列名优先 QueryCondition.column -> TableField.value -> 字段名
String column = qc.column();
if (StringUtils.isBlank(column)) {
TableField tableField = field.getAnnotation(TableField.class);
if (tableField != null && StringUtils.isNotBlank(tableField.value())) {
column = tableField.value();
} else {
column = StrUtil.toUnderlineCase(field.getName());
}
}
// null检查
if (value == null && !qc.nullable()) continue;
// empty检查
if (value instanceof String && ((String) value).isEmpty() && !qc.emptyable()) continue;
switch (qc.func()) {
case equal: wrapper.eq(column, value); break;
case notEqual: wrapper.ne(column, value); break;
case like: wrapper.like(column, value); break;
case notLike: wrapper.notLike(column, value); break;
case gt: wrapper.gt(column, value); break;
case ge: wrapper.ge(column, value); break;
case lt: wrapper.lt(column, value); break;
case le: wrapper.le(column, value); break;
case greaterThan: wrapper.gt(column, (Comparable<?>) value); break;
case greaterThanOrEqualTo: wrapper.ge(column, (Comparable<?>) value); break;
case lessThan: wrapper.lt(column, (Comparable<?>) value); break;
case lessThanOrEqualTo: wrapper.le(column, (Comparable<?>) value); break;
case in:
case inn:
if (value instanceof Collection) {
wrapper.in(column, (Collection<?>) value);
} else if (value.getClass().isArray()) {
wrapper.in(column, Arrays.asList((Object[]) value));
}
break;
case isNull: wrapper.isNull(column); break;
case isNotNull: wrapper.isNotNull(column); break;
default: break;
}
} catch (IllegalAccessException ignored) {}
}
return wrapper;
}
}

View File

@ -0,0 +1,80 @@
package com.dite.znpt.domain;
import com.dite.znpt.constant.Constants;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import java.io.Serializable;
/**
* @description: 返回结果
*/
@Data
public class Result<T> implements Serializable {
private static final Logger LOGGER = LoggerFactory.getLogger(Result.class);
private static final String SUCCESS = "success";
private static final Integer SUCCESS_CODE = 200;
private int status;
private T data;
private String msg;
private Integer code;
public Result(HttpStatus status, T data, Integer code, String msg) {
this.status = status.value();
this.data = data;
this.code = code;
this.msg = msg;
}
public boolean isSuccess() {
return this.getCode().equals(SUCCESS_CODE);
}
public static <T> Result<T> okM(String msg) {
return new Result<>(HttpStatus.OK, null, SUCCESS_CODE, msg);
}
public static <T> Result<T> ok() {
return new Result<>(HttpStatus.OK, null, SUCCESS_CODE, StringUtils.EMPTY);
}
public static <T> Result<T> okM(T t, String msg) {
return new Result<>(HttpStatus.OK, t, SUCCESS_CODE, msg);
}
public static <T> Result<T> ok(T t) {
return new Result<>(HttpStatus.OK, t, SUCCESS_CODE, StringUtils.EMPTY);
}
public static Result<Boolean> okTrue() {
return new Result<Boolean>(HttpStatus.OK, Boolean.TRUE, SUCCESS_CODE, StringUtils.EMPTY);
}
public static Result<Boolean> okFalse() {
return new Result<Boolean>(HttpStatus.OK, Boolean.FALSE, SUCCESS_CODE, StringUtils.EMPTY);
}
public static <T> Result<T> error() {
return new Result<T>(HttpStatus.INTERNAL_SERVER_ERROR, null, Integer.parseInt(Constants.SERVICE_EXCEPTION), Constants.SERVICE_EXCEPTION_MESSAGE);
}
public static <T> Result<T> error(String msg) {
return new Result<T>(HttpStatus.INTERNAL_SERVER_ERROR, null, Integer.parseInt(Constants.SERVICE_EXCEPTION), msg);
}
public static <T> Result<T> error(String code, String msg) {
return error(code, msg, null);
}
public static <T> Result<T> error(String code, String msg, T data) {
return new Result<T>(HttpStatus.INTERNAL_SERVER_ERROR, data, Integer.parseInt(code), msg);
}
}

View File

@ -0,0 +1,35 @@
package com.dite.znpt.domain;
import lombok.Data;
import java.util.Collections;
import java.util.List;
/**
* @author wujinsong
* @date 2021/9/15 10:11 下午
* @description: 巡检数据使用
*/
@Data
@Deprecated
public class TableData<T> {
private List<T> list = Collections.emptyList();
private Integer page = 0;
private Integer pageSize = 10;
private long total = 0L;
public TableData(List<T> list, Integer page, Integer pageSize, long total) {
this.list = list;
this.page = page;
this.pageSize = pageSize;
this.total = total;
}
public TableData() {
}
}

View File

@ -0,0 +1,21 @@
package com.dite.znpt.domain.bo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Detection{
@ApiModelProperty("标签")
public String label;
@ApiModelProperty("分类id")
private Integer clsId;
@ApiModelProperty("位置")
private float[] bbox;
@ApiModelProperty("置信度")
private float confidence;
}

View File

@ -0,0 +1,73 @@
package com.dite.znpt.domain.bo;
import lombok.Getter;
import lombok.Setter;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgproc.Imgproc;
public class Letterbox {
@Setter
private Size newShape ;
private final double[] color = new double[]{114,114,114};
private final Boolean auto = false;
private final Boolean scaleUp = true;
@Setter
private Integer stride = 32;
@Getter
private double ratio;
@Getter
private double dw;
@Getter
private double dh;
public Letterbox(int w,int h) {
this.newShape = new Size(w, h);
}
public Letterbox() {
this.newShape = new Size(640, 640);
}
public Integer getWidth() {
return (int) this.newShape.width;
}
public Integer getHeight() {
return (int) this.newShape.height;
}
public Mat letterbox(Mat im) { // 调整图像大小和填充图像使满足步长约束并记录参数
int[] shape = {im.rows(), im.cols()}; // 当前形状 [height, width]
// Scale ratio (new / old)
double r = Math.min(this.newShape.height / shape[0], this.newShape.width / shape[1]);
if (!this.scaleUp) { // 仅缩小不扩大一且为了mAP
r = Math.min(r, 1.0);
}
// Compute padding
Size newUnpad = new Size(Math.round(shape[1] * r), Math.round(shape[0] * r));
double dw = this.newShape.width - newUnpad.width, dh = this.newShape.height - newUnpad.height; // wh 填充
if (this.auto) { // 最小矩形
dw = dw % this.stride;
dh = dh % this.stride;
}
dw /= 2; // 填充的时候两边都填充一半使图像居于中心
dh /= 2;
if (shape[1] != newUnpad.width || shape[0] != newUnpad.height) { // resize
Imgproc.resize(im, im, newUnpad, 0, 0, Imgproc.INTER_LINEAR);
}
int top = (int) Math.round(dh - 0.1), bottom = (int) Math.round(dh + 0.1);
int left = (int) Math.round(dw - 0.1), right = (int) Math.round(dw + 0.1);
// 将图像填充为正方形
Core.copyMakeBorder(im, im, top, bottom, left, right, Core.BORDER_CONSTANT, new org.opencv.core.Scalar(this.color));
this.ratio = r;
this.dh = dh;
this.dw = dw;
return im;
}
}

View File

@ -0,0 +1,55 @@
package com.dite.znpt.domain.bo;
import java.util.*;
public final class ODConfig {
public static final Integer lineThicknessRatio = 333;
public static final Double fontSizeRatio = 1080.0;
private static final List<String> default_names = new ArrayList<>(Arrays.asList(
"person", "bicycle", "car", "motorcycle", "airplane", "bus", "train",
"truck", "boat", "traffic light", "fire hydrant", "stop sign", "parking meter",
"bench", "bird", "cat", "dog", "horse", "sheep", "cow", "elephant", "bear",
"zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase",
"frisbee", "skis", "snowboard", "sports ball", "kite", "baseball bat",
"baseball glove", "skateboard", "surfboard", "tennis racket", "bottle",
"wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple",
"sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut",
"cake", "chair", "couch", "potted plant", "bed", "dining table", "toilet",
"tv", "laptop", "mouse", "remote", "keyboard", "cell phone", "microwave",
"oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors",
"teddy bear", "hair drier", "toothbrush"));
private static final List<String> names = new ArrayList<>(Arrays.asList(
"no_helmet", "helmet"));
private final Map<String, double[]> colors;
public ODConfig() {
this.colors = new HashMap<>();
default_names.forEach(name->{
Random random = new Random();
double[] color = {random.nextDouble()*256, random.nextDouble()*256, random.nextDouble()*256};
colors.put(name, color);
});
}
public String getName(int clsId) {
return names.get(clsId);
}
public double[] getColor(int clsId) {
return colors.get(getName(clsId));
}
public double[] getNameColor(String Name){
return colors.get(Name);
}
public double[] getOtherColor(int clsId) {
return colors.get(default_names.get(clsId));
}
}

View File

@ -0,0 +1,57 @@
package com.dite.znpt.domain.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* <p>流程定义<p>
*
* @author Tony
* @date 2021-04-03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("流程定义")
public class FlowProcDefDto implements Serializable {
@ApiModelProperty("流程id")
private String id;
@ApiModelProperty("流程名称")
private String name;
@ApiModelProperty("流程key")
private String flowKey;
@ApiModelProperty("流程分类")
private String category;
@ApiModelProperty("配置表单名称")
private String formName;
@ApiModelProperty("配置表单id")
private Long formId;
@ApiModelProperty("版本")
private int version;
@ApiModelProperty("部署ID")
private String deploymentId;
@ApiModelProperty("流程定义状态: 1:激活 , 2:中止")
private int suspensionState;
@ApiModelProperty("部署时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date deploymentTime;
}

View File

@ -0,0 +1,50 @@
package com.dite.znpt.domain.dto;
import com.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.dite.znpt.domain.entity.job.DefectDTO;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class OutWorkDefectDTO implements Serializable {
@ApiModelProperty(value = "项目id", example = "797989789797", notes = "项目id")
@QueryCondition(func = MatchType.like)
private String projectId;
@ApiModelProperty(value = "机组id", example = "797989789797", notes = "机组id")
@QueryCondition(func = MatchType.like)
private String crewId;
@ApiModelProperty(value = "内业或外业id", example = "797989789797", notes = "内业或外业id")
@QueryCondition(func = MatchType.like)
private String reportId;
@ApiModelProperty(value = "图片地址", example = "http://www.images/1.png,http://www.images/1.png", notes = "图片地址")
private List<String> urlsList;
@ApiModelProperty(value = "岗位类型", example = "78979879375", notes = "岗位id")
@QueryCondition(func = MatchType.like)
private String jobCode;
@ApiModelProperty(value = "部件编号", example = "GG1", notes = "部件编号")
@QueryCondition(func = MatchType.like)
private String code;
@ApiModelProperty("图片地址")
@QueryCondition(func = MatchType.like)
@JsonIgnore
private String urls;
@ApiModelProperty("是否有缺陷1有0无")
@QueryCondition(func = MatchType.equal)
private Integer status;
@ApiModelProperty("缺陷列表")
private List<DefectDTO> defectList;
}

View File

@ -0,0 +1,58 @@
package com.dite.znpt.domain.entity;
import java.time.LocalDateTime;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
/**
* @author huise23
* @date 2025/06/27 16:18
* @Description: 附件信息表实体类
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("attach_info")
@ApiModel(value="AttachInfoEntity对象", description="附件信息表")
public class AttachInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -74430400890258372L;
@ApiModelProperty("附件id")
@TableId(value = "attach_id", type = IdType.ASSIGN_ID)
private String attachId;
@ApiModelProperty("业务id")
@TableField("business_id")
private String businessId;
@ApiModelProperty("附件路径")
@TableField("attach_path")
private String attachPath;
@ApiModelProperty("业务类型字典attach_business_type")
@TableField("business_type")
private String businessType;
@ApiModelProperty("文件类型")
@TableField("file_type")
private String fileType;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,54 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @Author: gaoxiong
* @Date: 2025/7/21 20:51
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("attendance_record")
@ApiModel(value="AttendanceRecordEntity对象", description="打卡记录表")
public class AttendanceRecordEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 6186237408298557453L;
@ApiModelProperty("考勤记录id")
@TableId(value = "record_id", type = IdType.ASSIGN_UUID)
private String recordId;
@ApiModelProperty("考勤人员")
private String userId;
@ApiModelProperty("记录类型0-上班1-下班2-无效")
private String recordType;
@ApiModelProperty("考勤日期")
private LocalDate attendanceDate;
@ApiModelProperty("打卡时间")
private LocalDateTime recordTime;
@ApiModelProperty("照片")
private String recordImage;
@ApiModelProperty("打卡地点,经纬度")
private String recordPosition;
@ApiModelProperty("打卡地点,中文描述")
private String recordPositionLabel;
}

View File

@ -0,0 +1,44 @@
package com.dite.znpt.domain.entity;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/06/23 13:39
* @Description: 音频文件信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("audio_file_info")
@ApiModel(value="AudioFileInfoEntity对象", description="音频文件信息表")
public class AudioFileInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -86870801917845298L;
@ExcelProperty("id")
@ApiModelProperty("id")
@TableId(value = "audio_id", type = IdType.ASSIGN_ID)
private String audioId;
@ExcelProperty("图片id")
@ApiModelProperty("图片id")
@TableField("image_id")
private String imageId;
@ExcelProperty("文件保存路径")
@ApiModelProperty("文件保存路径")
@TableField("file_path")
private String filePath;
}

View File

@ -0,0 +1,62 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @author Bear.G
* @date 2025/5/27/周二 15:15
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("certification")
@ApiModel(value="CertificationEntity对象", description="人员资质")
public class CertificationEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -5650015300122333342L;
@ApiModelProperty("证书id")
@TableId(value = "certification_id", type = IdType.ASSIGN_UUID)
private String certificationId;
@ApiModelProperty("用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty("证书编号")
@TableField("certification_code")
private String certificationCode;
@ApiModelProperty("证书名称")
@TableField("certification_name")
private String certificationName;
@ApiModelProperty("证书类型")
@TableField("certification_type")
private String certificationType;
@ApiModelProperty("证书有效期-起")
@TableField("validity_date_begin")
private LocalDate validityDateBegin;
@ApiModelProperty("证书有效期-讫")
@TableField("validity_date_end")
private LocalDate validityDateEnd;
@ApiModelProperty("证书图片")
@TableField("certification_image")
private String certificationImage;
}

View File

@ -0,0 +1,57 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/7/9 23:29
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("check_scheme")
@ApiModel(value="CheckSchemeEntity对象", description="检查方案")
public class CheckSchemeEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("方案id")
@TableId(value = "scheme_id", type = IdType.ASSIGN_UUID)
private String schemeId;
@ApiModelProperty("工作内容")
@TableField("work_content")
private String workContent;
@ApiModelProperty("人员配置")
@TableField("staff_config")
private String staffConfig;
@ApiModelProperty("设备配置")
@TableField("device_config")
private String deviceConfig;
@ApiModelProperty("实施方案")
@TableField("construction_scheme")
private String constructionScheme;
@ApiModelProperty("检查方式枚举CheckMethodEnum")
@TableField("check_method")
private String checkMethod;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,56 @@
package com.dite.znpt.domain.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/04/24 13:44
* @Description: 字典表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("combined_dict")
@ApiModel(value="CombinedDictEntity对象", description="字典表")
public class CombinedDictEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = 839158304342208816L;
@ExcelProperty("字典id")
@ApiModelProperty("字典id")
@TableId(value = "dict_id", type = IdType.ASSIGN_UUID)
private String dictId;
@ExcelProperty("字典类型")
@ApiModelProperty("字典类型")
@TableField("dict_type")
private String dictType;
@ExcelProperty("字典名称")
@ApiModelProperty("字典名称")
@TableField("dict_name")
private String dictName;
@ExcelProperty("父级id")
@ApiModelProperty("父级id")
@TableField("parent_id")
private Long parentId;
@ExcelProperty("字典排序")
@ApiModelProperty("字典排序")
@TableField("sort_order")
private Integer sortOrder;
@ExcelProperty("是否字典终值")
@ApiModelProperty("是否字典终值")
@TableField("final_state")
private Boolean finalState;
}

View File

@ -0,0 +1,110 @@
package com.dite.znpt.domain.entity;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("contract")
@ApiModel(value="ContractEntity对象", description="合同表")
public class ContractEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 782007452634989148L;
@ExcelProperty("合同id")
@ApiModelProperty("合同id")
@TableId(value = "contract_id", type = IdType.ASSIGN_ID)
private String contractId;
@ExcelProperty("客户名称")
@ApiModelProperty("客户名称")
@TableField("customer")
private String customer;
@ExcelProperty("合同编号")
@ApiModelProperty("合同编号")
@TableField("code")
private String code;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ExcelProperty("业务员id")
@ApiModelProperty("业务员id")
@TableField("salesperson_id")
private String salespersonId;
@ExcelProperty("部门id")
@ApiModelProperty("部门id")
@TableField("department_id")
private String departmentId;
@ExcelProperty("签订日期")
@ApiModelProperty("签订日期")
@TableField("sign_date")
private Date signDate;
@ExcelProperty("期限")
@ApiModelProperty("期限")
@TableField("duration")
private String duration;
@ExcelProperty("类型")
@ApiModelProperty("类型")
@TableField("type")
private String type;
@ExcelProperty("产品或服务")
@ApiModelProperty("产品或服务")
@TableField("product_service")
private String productService;
@ExcelProperty("付款日期/交付日期")
@ApiModelProperty("付款日期/交付日期")
@TableField("payment_date")
private Date paymentDate;
@ExcelProperty("付款地址/交付地址")
@ApiModelProperty("付款地址/交付地址")
@TableField("payment_address")
private String paymentAddress;
@ExcelProperty("金额")
@ApiModelProperty("金额")
@TableField("amount")
private BigDecimal amount;
@ExcelProperty("收款账号")
@ApiModelProperty("收款账号")
@TableField("account_number")
private String accountNumber;
@ExcelProperty("备注")
@ApiModelProperty("备注")
@TableField("notes")
private String notes;
@ExcelProperty("合同状态")
@ApiModelProperty("合同状态")
@TableField("contract_status")
private String contractStatus;
}

View File

@ -0,0 +1,105 @@
package com.dite.znpt.domain.entity;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同结算表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("contract_settlement")
@ApiModel(value="ContractSettlementEntity对象", description="合同结算表")
public class ContractSettlementEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -59751771276704650L;
@ExcelProperty("合同结算id")
@ApiModelProperty("合同结算id")
@TableId(value = "settlement_id", type = IdType.ASSIGN_ID)
private String settlementId;
@ExcelProperty("合同id")
@ApiModelProperty("合同id")
@TableField("contract_id")
private String contractId;
@ExcelProperty("客户/供应商名称")
@ApiModelProperty("客户/供应商名称")
@TableField("customer")
private String customer;
@ExcelProperty("合同结算编号")
@ApiModelProperty("合同结算编号")
@TableField("code")
private String code;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ExcelProperty("业务员id")
@ApiModelProperty("业务员id")
@TableField("salesperson_id")
private String salespersonId;
@ExcelProperty("部门id")
@ApiModelProperty("部门id")
@TableField("department_id")
private String departmentId;
@ExcelProperty("账期")
@ApiModelProperty("账期")
@TableField("payment_period")
private Date paymentPeriod;
@ExcelProperty("日期")
@ApiModelProperty("日期")
@TableField("payment_date")
private Date paymentDate;
@ExcelProperty("期限")
@ApiModelProperty("期限")
@TableField("duration")
private String duration;
@ExcelProperty("产品或服务")
@ApiModelProperty("产品或服务")
@TableField("product_service")
private String productService;
@ExcelProperty("金额")
@ApiModelProperty("金额")
@TableField("amount")
private BigDecimal amount;
@ExcelProperty("收款账号")
@ApiModelProperty("收款账号")
@TableField("account_number")
private String accountNumber;
@ExcelProperty("备注")
@ApiModelProperty("备注")
@TableField("notes")
private String notes;
@ExcelProperty("合同结算状态")
@ApiModelProperty("合同结算状态")
@TableField("settlement_status")
private String settlementStatus;
}

View File

@ -0,0 +1,105 @@
package com.dite.znpt.domain.entity;
import java.io.Serial;
import java.math.BigDecimal;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/04/24 13:44
* @Description: 缺陷记录表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("defect")
@ApiModel(value="DefectEntity对象", description="缺陷记录表")
public class DefectEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 721961595098309935L;
@ExcelProperty("缺陷id")
@ApiModelProperty("缺陷id")
@TableId(value = "defect_id", type = IdType.ASSIGN_UUID)
private String defectId;
@ExcelProperty("图像id")
@ApiModelProperty("图像id")
@TableField("image_id")
private String imageId;
@ExcelProperty("缺陷编码")
@ApiModelProperty("缺陷编码")
@TableField("defect_code")
private String defectCode;
@ExcelProperty("缺陷名称")
@ApiModelProperty("缺陷名称")
@TableField("defect_name")
private String defectName;
@ExcelProperty("缺陷部位")
@ApiModelProperty("缺陷部位")
@TableField("defect_position")
private String defectPosition;
@ExcelProperty("缺陷类型枚举DefectTypeEnum")
@ApiModelProperty("缺陷类型枚举DefectTypeEnum")
@TableField("defect_type")
private String defectType;
@ExcelProperty("危重等级枚举DefectLevelEnum")
@ApiModelProperty("危重等级枚举DefectLevelEnum")
@TableField("defect_level")
private String defectLevel;
@ExcelProperty("维修状态枚举RepairStatusEnum")
@ApiModelProperty("维修状态枚举RepairStatusEnum")
@TableField("repair_status")
private String repairStatus;
@ExcelProperty("检测时间")
@ApiModelProperty("检测时间")
@TableField("detection_time")
private LocalDateTime detectionTime;
@ExcelProperty("来源")
@ApiModelProperty("来源")
@TableField("source")
private String source;
@ExcelProperty("弦向")
@ApiModelProperty("弦向")
@TableField("chordwise")
private String chordwise;
@ExcelProperty("轴向")
@ApiModelProperty("轴向")
@TableField("axial")
private String axial;
@ExcelProperty("标注信息")
@ApiModelProperty("标注信息")
@TableField("label_info")
private String labelInfo;
@ExcelProperty("说明")
@ApiModelProperty("说明")
@TableField("description")
private String description;
@ExcelProperty("维修建议")
@ApiModelProperty("维修建议")
@TableField("repair_idea")
private String repairIdea;
}

View File

@ -0,0 +1,64 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/5/20/周二 9:17
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("dept")
@ApiModel(value="DeptEntity对象", description="部门信息表")
public class DeptEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -6471015140726790051L;
@ApiModelProperty("部门id")
@TableId(value = "dept_id", type = IdType.ASSIGN_UUID)
private String deptId;
@ApiModelProperty("父级部门id")
@TableField("parent_id")
private String parentId;
@ApiModelProperty("祖籍列表")
@TableField("ancestors")
private String ancestors;
@ApiModelProperty("部门全路径名称")
@TableField("dept_full_name")
private String deptFullName;
@ApiModelProperty("部门名称")
@TableField("dept_name")
private String deptName;
@ApiModelProperty("显示顺序")
@TableField("order_num")
private Integer orderNum;
@ApiModelProperty("部门负责人")
@TableField("leader_id")
private String leaderId;
@ApiModelProperty("状态0正常 1停用")
@TableField("status")
private Integer status;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,61 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author huise23
* @date 2025/06/30 11:38
* @Description: 字典表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("dict")
@ApiModel(value="DictEntity对象", description="字典表")
public class DictEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -52191875430786367L;
@ExcelProperty("字典id")
@ApiModelProperty("字典id")
@TableId(value = "dict_id", type = IdType.ASSIGN_ID)
private String dictId;
@ExcelProperty("字典类型")
@ApiModelProperty("字典类型")
@TableField("dict_type")
private String dictType;
@ExcelProperty("字典名称")
@ApiModelProperty("字典名称")
@TableField("dict_name")
private String dictName;
@ExcelProperty("父级id")
@ApiModelProperty("父级id")
@TableField("parent_id")
private Long parentId;
@ExcelProperty("字典排序")
@ApiModelProperty("字典排序")
@TableField("sort_order")
private Integer sortOrder;
@ExcelProperty("是否字典终值")
@ApiModelProperty("是否字典终值")
@TableField("final_state")
private Integer finalState;
}

View File

@ -0,0 +1,55 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/7/23/周三 17:26
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("equipment")
@ApiModel(value="EquipmentEntity对象", description="设备信息表")
public class EquipmentEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -6665040704562461286L;
@ApiModelProperty("设备id")
@TableId(type = IdType.ASSIGN_ID)
private String equipmentId;
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("设备类型")
private String equipmentType;
@ApiModelProperty("设备状态枚举EquipmentStatusEnum")
private String equipmentStatus;
@ApiModelProperty("使用状态0-空闲中1-使用中")
private String useStatus;
@ApiModelProperty("设备序列号")
private String equipmentSn;
@ApiModelProperty("当前使用记录id")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String useRecordId;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableLogic(value = "0", delval = "1")
private String delFlag;
}

View File

@ -0,0 +1,53 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/23/周三 17:33
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("equipment_use_record")
@ApiModel(value="EquipmentUseRecordEntity对象", description="设备使用记录表")
public class EquipmentUseRecordEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -812107257694322222L;
@ApiModelProperty("设备使用记录id")
@TableId(type = IdType.ASSIGN_UUID)
private String useRecordId;
@ApiModelProperty("设备id")
private String equipmentId;
@ApiModelProperty("用户id")
private String userId;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("操作类型0-借用1-归还")
private String operateType;
@ApiModelProperty("操作时间")
private LocalDateTime operateTime;
@ApiModelProperty("批次id")
private String batchId;
@ApiModelProperty("备注")
private String remark;
}

View File

@ -0,0 +1,82 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @Author: gaoxiong
* @Date: 2025/4/24 20:33
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("image_collect")
@ApiModel(value="ImageEntity对象", description="图像采集信息表")
public class ImageCollectEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -2957687117182827156L;
@ApiModelProperty("图像采集id")
@TableId(value = "collect_id", type = IdType.ASSIGN_UUID)
private String collectId;
@ApiModelProperty("拍摄时间-起")
@TableField("shooting_time_begin")
private LocalDateTime shootingTimeBegin;
@ApiModelProperty("拍摄时间-讫")
@TableField("shooting_time_end")
private LocalDateTime shootingTimeEnd;
@ApiModelProperty("天气枚举WeatherEnum")
@TableField("weather")
private String weather;
@ApiModelProperty("湿度(百分比)")
@TableField("humidness")
private Integer humidness;
@ApiModelProperty("温度-低")
@TableField("temperature_min")
private Double temperatureMin;
@ApiModelProperty("温度-高")
@TableField("temperature_max")
private Double temperatureMax;
@ApiModelProperty("风力等级")
@TableField("wind_level")
private Integer windLevel;
@ApiModelProperty("拍摄方式枚举ShootingMethodEnum")
@TableField("shooting_method")
private String shootingMethod;
@ApiModelProperty("拍摄距离")
@TableField("shooting_distance")
private Integer shootingDistance;
@ApiModelProperty("采集员id")
@TableField("collector_id")
private String collectorId;
@ApiModelProperty("采集员姓名")
@TableField("collector_name")
private String collectorName;
@ApiModelProperty("来源")
@TableField("image_source")
private String imageSource;
}

View File

@ -0,0 +1,139 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/4/24/周四 13:15
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("image")
@ApiModel(value="ImageEntity对象", description="图像信息表")
public class ImageEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -7702927820673158420L;
@ApiModelProperty("图像id")
@TableId(value = "image_id", type = IdType.ASSIGN_UUID)
private String imageId;
@ApiModelProperty("部件id")
@TableField("part_id")
private String partId;
@ApiModelProperty("图像采集id")
@TableField("collect_id")
private String collectId;
@ApiModelProperty("图像名称")
@TableField("image_name")
private String imageName;
@ApiModelProperty("图像大小")
@TableField("image_size")
private String imageSize;
@ApiModelProperty("图像宽")
@TableField("image_width")
private String imageWidth;
@ApiModelProperty("图像高")
@TableField("image_height")
private String imageHeight;
@ApiModelProperty("图像分辨率")
@TableField("image_resolution")
private String imageResolution;
@ApiModelProperty("焦平面X轴分辨率")
@TableField("x_resolution")
private String xResolution;
@ApiModelProperty("焦平面Y轴分辨率")
@TableField("y_resolution")
private String YResolution;
@ApiModelProperty("焦平面分辨率单位")
@TableField("resolution_units")
private String ResolutionUnits;
@ApiModelProperty("焦距")
@TableField("focal_distance")
private String focalDistance;
@ApiModelProperty("35毫米焦距")
@TableField("focal_distance35")
private String focalDistance35;
@ApiModelProperty("拍摄时间")
@TableField("shooting_time")
private LocalDateTime shootingTime;
@ApiModelProperty("相机制造商")
@TableField("camera_manufacturer")
private String cameraManufacturer;
@ApiModelProperty("相机型号")
@TableField("camera_model")
private String cameraModel;
@ApiModelProperty("经度")
@TableField("longitude")
private String longitude;
@ApiModelProperty("纬度")
@TableField("latitude")
private String latitude;
@ApiModelProperty("海拔")
@TableField("altitude")
private String altitude;
@ApiModelProperty("GPS")
@TableField("GPS")
private String GPS;
@ApiModelProperty("影像类型")
@TableField("image_type")
private String imageType;
@ApiModelProperty("影像类型描述")
@TableField("image_type_label")
private String imageTypeLabel;
@ApiModelProperty("图片路径")
@TableField("image_path")
private String imagePath;
@ApiModelProperty("预处理后的图片路径")
@TableField("pre_image_path")
private String preImagePath;
@ApiModelProperty("是否已审核0未审核1已审核")
@TableField("review_state")
private Boolean reviewState;
@ApiModelProperty("是否已预处理0未审核1已审核")
@TableField("pre_treatment")
private Boolean preTreatment;
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
}

View File

@ -0,0 +1,98 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/7/周一 16:59
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("inspection_report")
@ApiModel(value="InspectionReportEntity对象", description="检测报告表")
public class InspectionReportEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 6994234156669409533L;
@ApiModelProperty("报告id")
@TableId(value = "report_id", type = IdType.ASSIGN_UUID)
private String reportId;
@ApiModelProperty("主标题")
@TableField("title")
private String title;
@ApiModelProperty("副标题")
@TableField("sub_title")
private String subTitle;
@ApiModelProperty("封面")
@TableField("cover_image")
private String coverImage;
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ApiModelProperty("机组id")
@TableField("turbine_id")
private String turbineId;
@ApiModelProperty("检查日期")
@TableField("check_date")
private LocalDate checkDate;
@ApiModelProperty("检查内容")
@TableField("check_content")
private String checkContent;
@ApiModelProperty("检查方式")
@TableField("check_method")
private String checkMethod;
@ApiModelProperty("检查人员id多个人员英文逗号分隔")
@TableField("check_user_id")
private String checkUserId;
@ApiModelProperty("报告编制人员id")
@TableField("report_writer")
private String reportWriter;
@ApiModelProperty("报告编制时间")
@TableField("report_write_time")
private LocalDateTime reportWriteTime;
@ApiModelProperty("报告复核人员id")
@TableField("report_reviewer")
private String reportReviewer;
@ApiModelProperty("报告复核时间")
@TableField("report_review_time")
private LocalDateTime reportReviewTime;
@ApiModelProperty("报告审核人员id")
@TableField("report_auditor")
private String reportAuditor;
@ApiModelProperty("报告审核时间")
@TableField("report_audit_time")
private LocalDateTime reportAuditTime;
@ApiModelProperty("报告状态")
@TableField("report_status")
private String reportStatus;
}

View File

@ -0,0 +1,52 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/6/24 23:15
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("insurance_company")
@ApiModel(value="InsuranceCompanyEntity对象", description="保险公司信息")
public class InsuranceCompanyEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 6335457810854776901L;
@ApiModelProperty("公司id")
@TableId(value = "insurance_company_id", type = IdType.ASSIGN_UUID)
private String insuranceCompanyId;
@ApiModelProperty("公司名称")
@TableField("insurance_company_name")
private String insuranceCompanyName;
@ApiModelProperty("联系人")
@TableField("contact")
private String contact;
@ApiModelProperty("联系人电话")
@TableField("contact_phone")
private String contactPhone;
@ApiModelProperty("状态0-合作中1-终止合作")
@TableField("status")
private String status;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,99 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* @Author: gaoxiong
* @Date: 2025/6/24 23:15
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("insurance_info")
@ApiModel(value="InsuranceInfoEntity对象", description="保险信息")
public class InsuranceInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 465741795038101117L;
@ApiModelProperty("保险信息id")
@TableId(value = "insurance_info_id", type = IdType.ASSIGN_UUID)
private String insuranceInfoId;
@ApiModelProperty("员工id")
@TableField("user_id")
private String userId;
@ApiModelProperty("员工姓名")
@TableField("name")
private String name;
@ApiModelProperty("员工工号")
@TableField("user_code")
private String userCode;
@ApiModelProperty("保险公司id")
@TableField("insurance_company_id")
private String insuranceCompanyId;
@ApiModelProperty("保险公司")
@TableField("insurance_company_name")
private String insuranceCompanyName;
@ApiModelProperty("保险类型id")
@TableField("insurance_type_id")
private String insuranceTypeId;
@ApiModelProperty("保险类型")
@TableField("insurance_type_name")
private String insuranceTypeName;
@ApiModelProperty("保险单号")
@TableField("insurance_bill_code")
private String insuranceBillCode;
@ApiModelProperty("附件id")
@TableField("attach_info_id")
private String attachInfoId;
@ApiModelProperty("生效日期")
@TableField("effective_date")
private LocalDate effectiveDate;
@ApiModelProperty("到期日期")
@TableField("expire_date")
private LocalDate expireDate;
@ApiModelProperty("保费")
@TableField("insurance_premium")
private BigDecimal insurancePremium;
@ApiModelProperty("保额")
@TableField("insurance_amount")
private BigDecimal insuranceAmount;
@ApiModelProperty("状态")
@TableField("insurance_status")
private String insuranceStatus;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,44 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/6/24 23:15
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("insurance_type")
@ApiModel(value="InsuranceTypeEntity对象", description="保险类型")
public class InsuranceTypeEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 3027186714895190416L;
@ApiModelProperty("保险类型id")
@TableId(value = "insurance_type_id", type = IdType.ASSIGN_UUID)
private String insuranceTypeId;
@ApiModelProperty("保险类型名称")
@TableField("insurance_type_name")
private String insuranceTypeName;
@ApiModelProperty("描述")
@TableField("description")
private String description;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,46 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/7/7 22:18
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("maintain_suggestion")
@ApiModel(value="MaintainSuggestionEntity对象", description="维修建议库")
public class MaintainSuggestionEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -5774159362861473940L;
@ApiModelProperty("建议id")
@TableId(value = "suggestion_id", type = IdType.ASSIGN_UUID)
private String suggestionId;
@ApiModelProperty("建议类容")
@TableField("suggestion_content")
private String suggestionContent;
@ApiModelProperty("缺陷级别")
@TableField("defect_level")
private String defectLevel;
@ApiModelProperty("缺陷类型")
@TableField("defect_type")
private String defectType;
}

View File

@ -0,0 +1,79 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/5/15 23:33
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("menu")
@ApiModel(value="MenuEntity对象", description="菜单信息表")
public class MenuEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -6913953673120999054L;
@ExcelProperty("菜单id")
@ApiModelProperty("菜单id")
@TableId(value = "menu_id", type = IdType.ASSIGN_UUID)
private String menuId;
@ExcelProperty("菜单名称")
@ApiModelProperty("菜单名称")
@TableField("menu_name")
private String menuName;
@ExcelProperty("父菜单ID")
@ApiModelProperty("父菜单ID")
@TableField("parent_id")
private String parentId;
@ExcelProperty("order_num")
@ApiModelProperty("显示顺序")
@TableField("order_num")
private Integer orderNum;
@ExcelProperty("组件地址")
@ApiModelProperty("组件地址")
@TableField("component")
private String component;
@ExcelProperty("路由地址")
@ApiModelProperty("路由地址")
@TableField("path")
private String path;
@ExcelProperty("菜单类型M目录 C菜单 F按钮")
@ApiModelProperty("菜单类型M目录 C菜单 F按钮")
@TableField("menu_type")
private String menuType;
@ExcelProperty("菜单状态0显示 1隐藏")
@ApiModelProperty("菜单状态0显示 1隐藏")
@TableField("visible")
private String visible;
@ExcelProperty("权限标识")
@ApiModelProperty("权限标识")
@TableField("perms")
private String perms;
@ApiModelProperty("终端类型PC-电脑端APP-移动端)")
@TableField("terminal_type")
private String terminalType;
}

View File

@ -0,0 +1,56 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author huise23
* @date 2025/07/02 20:57
* @Description: 模型配置表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("model_config")
@ApiModel(value="ModelConfigEntity对象", description="模型配置表")
public class ModelConfigEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -73052440757340126L;
@ExcelProperty("模型id")
@ApiModelProperty("模型id")
@TableId(value = "model_id", type = IdType.ASSIGN_ID)
private String modelId;
@ExcelProperty("模型名称")
@ApiModelProperty("模型名称")
@TableField("model_name")
private String modelName;
@ExcelProperty("模型路径")
@ApiModelProperty("模型路径")
@TableField("model_path")
private String modelPath;
@ExcelProperty("模型置信度")
@ApiModelProperty("模型置信度")
@TableField("conf_threshold")
private Float confThreshold;
@ExcelProperty("非极大抑制")
@ApiModelProperty("非极大抑制")
@TableField("nms_threshold")
private Float nmsThreshold;
}

View File

@ -0,0 +1,69 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 部件表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("part")
@ApiModel(value="PartEntity对象", description="部件表")
public class PartEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = -53853862365306266L;
@ExcelProperty("部件id")
@ApiModelProperty("部件id")
@TableId(value = "part_id", type = IdType.ASSIGN_UUID)
private String partId;
@ExcelProperty("机组id")
@ApiModelProperty("机组id")
@TableField("turbine_id")
private String turbineId;
@ExcelProperty("名称")
@ApiModelProperty("名称")
@TableField("part_name")
private String partName;
@ExcelProperty("编号")
@ApiModelProperty("编号")
@TableField("part_code")
private String partCode;
@ExcelProperty("类型枚举PartTypeEnum")
@ApiModelProperty("类型枚举PartTypeEnum")
@TableField("part_type")
private String partType;
@ExcelProperty("描述")
@ApiModelProperty("描述")
@TableField("part_desc")
private String partDesc;
@ExcelProperty("厂商")
@ApiModelProperty("厂商")
@TableField("part_manufacturer")
private String partManufacturer;
@ExcelProperty("型号")
@ApiModelProperty("型号")
@TableField("part_model")
private String partModel;
}

View File

@ -0,0 +1,49 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/5/20/周二 9:17
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("post")
@ApiModel(value="PostEntity对象", description="")
public class PostEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -5163882523494504223L;
@ApiModelProperty("岗位id")
@TableId(value = "post_id", type = IdType.ASSIGN_UUID)
private String postId;
@ApiModelProperty("岗位名称")
@TableField("post_name")
private String postName;
@ApiModelProperty("显示顺序")
@TableField("post_sort")
private Integer postSort;
@ApiModelProperty("状态0正常 1停用")
@TableField("status")
private Integer status;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
}

View File

@ -0,0 +1,61 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author huise23
* @date 2025/07/17 21:58
* @Description: 项目预算信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_budget_info")
@ApiModel(value="ProjectBudgetInfoEntity对象", description="项目预算信息表")
public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 514469235298737990L;
@ExcelProperty("主键")
@ApiModelProperty("主键")
@TableId(value = "budget_id", type = IdType.ASSIGN_ID)
private String budgetId;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ExcelProperty("预算名称")
@ApiModelProperty("预算名称")
@TableField("budget_name")
private String budgetName;
@ExcelProperty("预算类型")
@ApiModelProperty("预算类型")
@TableField("budget_type")
private String budgetType;
@ExcelProperty("预算金额(万元)")
@ApiModelProperty("预算金额(万元)")
@TableField("budget_amount")
private Double budgetAmount;
@ExcelProperty("预算说明")
@ApiModelProperty("预算说明")
@TableField("budget_desc")
private String budgetDesc;
}

View File

@ -0,0 +1,165 @@
package com.dite.znpt.domain.entity;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 项目信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project")
@ApiModel(value="ProjectEntity对象", description="项目信息表")
public class ProjectEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = -38332266915294799L;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableId(value = "project_id", type = IdType.ASSIGN_UUID)
private String projectId;
@ExcelProperty("项目名称")
@ApiModelProperty("项目名称")
@TableField("project_name")
private String projectName;
@ApiModelProperty("项目封面")
@TableField("cover_url")
private String coverUrl;
@ExcelProperty("风场名称")
@ApiModelProperty("风场名称")
@TableField("farm_name")
private String farmName;
@ExcelProperty("风场地址")
@ApiModelProperty("风场地址")
@TableField("farm_address")
private String farmAddress;
@ApiModelProperty("委托单位")
@TableField("client")
private String client;
@ApiModelProperty("委托单位联系人")
@TableField("client_contact")
private String clientContact;
@ApiModelProperty("委托单位联系电话")
@TableField("client_phone")
private String clientPhone;
@ApiModelProperty("检查单位")
@TableField("inspection_unit")
private String inspectionUnit;
@ApiModelProperty("检查单位联系人")
@TableField("inspection_contact")
private String inspectionContact;
@ApiModelProperty("检查单位联系电话")
@TableField("inspection_phone")
private String inspectionPhone;
@ExcelProperty("项目规模")
@ApiModelProperty("项目规模")
@TableField("scale")
private String scale;
@ExcelProperty("总工期,单位天")
@ApiModelProperty("总工期,单位天")
@TableField("duration")
private Integer duration;
@ExcelProperty("风机型号")
@ApiModelProperty("风机型号")
@TableField("turbine_model")
private String turbineModel;
@ApiModelProperty("施工人员id")
@TableField("constructor_ids")
private String constructorIds;
@ApiModelProperty("安全员id")
@TableField("auditor_id")
private String auditorId;
@ApiModelProperty("质量员id")
@TableField("quality_officer_id")
private String qualityOfficerId;
@ApiModelProperty("项目经理id")
@TableField("project_manager_id")
private String projectManagerId;
@ApiModelProperty("施工组长id")
@TableField("construct_team_leader_id")
private String constructTeamLeaderId;
@ApiModelProperty("技术方案图片,多个用逗号隔开")
@JsonIgnore
@TableField("technical_image")
@Deprecated
private String technicalImage;
@ApiModelProperty("技术方案内容")
@TableField("technical_content")
@Deprecated
private String technicalContent;
@ApiModelProperty("安全措施图片,多个用逗号隔开")
@JsonIgnore
@TableField("safety_image")
@Deprecated
private String safetyImage;
@ApiModelProperty("安全措施内容")
@TableField("safety_content")
@Deprecated
private String safetyContent;
@ApiModelProperty("交底内容")
@TableField("disclose_content")
@Deprecated
private String discloseContent;
@ApiModelProperty("状态0待施工1施工中2已完工3已审核4已验收")
@TableField("status")
private Integer status;
@ApiModelProperty("项目工作类型 可能有多项,逗号分隔")
@TableField("work_type")
@Deprecated
private String workType;
@ApiModelProperty("项目工作岗位 可能有多项json对象保存")
@TableField("job")
@Deprecated
private String job;
@ApiModelProperty(value = "项目安全风险点", example = "1", notes = "项目安全风险点 可能有多项,逗号分隔")
@TableField("safety_risk_point")
@Deprecated
private String safetyRiskPoint;
@ApiModelProperty(value = "开始时间")
private LocalDate startDate;
@ApiModelProperty(value = "结束时间")
private LocalDate endDate;
}

View File

@ -0,0 +1,89 @@
package com.dite.znpt.domain.entity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author huise23
* @date 2025/06/25 21:48
* @Description: 项目任务信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_task")
@ApiModel(value="ProjectTaskEntity对象", description="项目任务信息表")
public class ProjectTaskEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 445818156838153502L;
@ApiModelProperty("任务id")
@TableId(value = "task_id", type = IdType.ASSIGN_ID)
private String taskId;
@ApiModelProperty("上级任务id")
@TableField("parent_task_id")
private String parentTaskId;
@ApiModelProperty("任务组id")
@TableField("task_group_id")
private String taskGroupId;
@ApiModelProperty("项目任务名称")
@TableField("task_name")
private String taskName;
@ApiModelProperty("项目任务编号")
@TableField("task_code")
private String taskCode;
@ApiModelProperty("任务负责人id")
@TableField("main_user_id")
private String mainUserId;
@ApiModelProperty("任务参与人id逗号分隔")
@TableField("user_ids")
private String userIds;
@ApiModelProperty("计划开始时间")
@TableField("plan_start_date")
private LocalDate planStartDate;
@ApiModelProperty("计划结束时间")
@TableField("plan_end_date")
private LocalDate planEndDate;
@ApiModelProperty("实际开始时间")
@TableField("actual_start_date")
private LocalDate actualStartDate;
@ApiModelProperty("实际结束时间")
@TableField("actual_end_date")
private LocalDate actualEndDate;
@ApiModelProperty("任务状态0未开始1进行中2已结束")
@TableField("status")
private Integer status;
@ApiModelProperty("是否逾期,默认未逾期")
@TableField("overdue_status")
private Integer overdueStatus;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
}

View File

@ -0,0 +1,41 @@
package com.dite.znpt.domain.entity;
import java.time.LocalDateTime;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/06/24 17:06
* @Description: 项目任务组信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_task_group")
@ApiModel(value="ProjectTaskGroupEntity对象", description="项目任务组信息表")
public class ProjectTaskGroupEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -86904406809616523L;
@ApiModelProperty("id")
@TableId(value = "group_id", type = IdType.ASSIGN_ID)
private String groupId;
@ApiModelProperty("项目任务组名")
@TableField("group_name")
private String groupName;
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
}

View File

@ -0,0 +1,67 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/5/15 23:33
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("role")
@ApiModel(value="RoleEntity对象", description="角色信息表")
public class RoleEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -561827154209083475L;
@ExcelProperty("角色id")
@ApiModelProperty("角色id")
@TableId(value = "role_id", type = IdType.ASSIGN_UUID)
private String roleId;
@ExcelProperty("角色名称")
@ApiModelProperty("角色名称")
@TableField("role_name")
private String roleName;
@ExcelProperty("角色编码")
@ApiModelProperty("角色编码")
@TableField("role_code")
private String roleCode;
@ExcelProperty("角色权限字符")
@ApiModelProperty("角色权限字符")
@TableField("role_key")
private String roleKey;
@ExcelProperty("0正常1禁用")
@ApiModelProperty("0正常1禁用")
@TableField("status")
private Integer status;
@ExcelProperty("备注")
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ExcelProperty("删除标志0代表存在 1代表删除")
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,38 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/5/15 23:33
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("role_menu")
@ApiModel(value="RoleMenuEntity对象", description="角色和菜单关联表")
public class RoleMenuEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -795955361477553526L;
@ApiModelProperty("角色id")
@TableField("role_id")
private String roleId;
@ApiModelProperty("菜单id")
@TableField("menu_id")
private String menuId;
}

View File

@ -0,0 +1,85 @@
package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author sakura
* @date 2025/04/10 13:35
* @Description: 施工信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_construction")
@ApiModel(value="TConstructionEntity对象", description="施工信息表")
public class TConstructionEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = 295094962841990277L;
@ExcelProperty("施工id")
@ApiModelProperty("施工id")
@TableId(value = "construction_id", type = IdType.ASSIGN_UUID)
private String constructionId;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ExcelProperty("机组id")
@ApiModelProperty("机组id")
@TableField("turbine_id")
private String turbineId;
@ExcelProperty("作业开始时间")
@ApiModelProperty("作业开始时间")
@TableField("start_time")
private LocalDateTime startTime;
@ExcelProperty("作业结束时间")
@ApiModelProperty("作业结束时间")
@TableField("end_time")
private LocalDateTime endTime;
@ExcelProperty("温度(℃)")
@ApiModelProperty("温度(℃)")
@TableField("temperature")
private Double temperature;
@ExcelProperty("风速(m/s)")
@ApiModelProperty("风速(m/s)")
@TableField("wind_speed")
private Double windSpeed;
@ExcelProperty("采集图片数量")
@ApiModelProperty("采集图片数量")
@TableField("image_count")
private Integer imageCount;
@ExcelProperty("天气id")
@ApiModelProperty("天气id")
@TableField("weather_code")
private String weatherCode;
@ExcelProperty("施工状态")
@ApiModelProperty("施工状态")
@TableField("status_id")
private String statusId;
@ExcelProperty("当前时间")
@ApiModelProperty("当前时间")
@TableField("created_at")
private LocalDateTime createdAt;
}

View File

@ -0,0 +1,69 @@
package com.dite.znpt.domain.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 机组-项目关联表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("turbine")
@ApiModel(value="TurbineEntity对象", description="机组-项目关联表")
public class TurbineEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = -46471985197840891L;
@ExcelProperty("机组号")
@ApiModelProperty("机组号")
@TableId(value = "turbine_id", type = IdType.ASSIGN_UUID)
private String turbineId;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ExcelProperty("机组名称")
@ApiModelProperty("机组名称")
@TableField("turbine_name")
private String turbineName;
@ExcelProperty("机组编码")
@ApiModelProperty("机组编码")
@TableField("turbine_code")
private String turbineCode;
@ExcelProperty("机组描述")
@ApiModelProperty("机组描述")
@TableField("turbine_desc")
private String turbineDesc;
@ExcelProperty("机组厂商")
@ApiModelProperty("机组厂商")
@TableField("turbine_manufacturer")
private String turbineManufacturer;
@ExcelProperty("机组型号")
@ApiModelProperty("机组型号")
@TableField("turbine_model")
private String turbineModel;
@ApiModelProperty("封面图")
@TableField("turbine_cover_url")
private String turbineCoverUrl;
@ApiModelProperty("状态0待施工1施工中2已完工3已审核4已验收")
@TableField("status")
private Integer status;
}

View File

@ -0,0 +1,152 @@
package com.dite.znpt.domain.entity;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 人员信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user")
@ApiModel(value="UserEntity对象", description="用户信息表")
public class UserEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = -62273861742734411L;
@ExcelProperty("用户名")
@ApiModelProperty("用户名")
@TableId(value = "user_id", type = IdType.ASSIGN_UUID)
private String userId;
@ExcelProperty("账号")
@ApiModelProperty("账号")
@TableField("account")
private String account;
@ExcelProperty("头像地址")
@ApiModelProperty("头像地址")
@TableField("avatar")
private String avatar;
@ExcelProperty("密码")
@ApiModelProperty("密码")
@TableField("password")
private String password;
@ExcelProperty("是否默认密码")
@ApiModelProperty("是否默认密码")
@TableField("is_default_password")
private Boolean isDefaultPassword;
@ExcelProperty("加密盐")
@ApiModelProperty("加密盐")
@TableField("salt")
private String salt;
@ExcelProperty("0正常1禁用")
@ApiModelProperty("0正常1禁用")
@TableField("status")
private Integer status;
@ExcelProperty("姓名")
@ApiModelProperty("姓名")
@TableField("name")
private String name;
@ExcelProperty("用户编码")
@ApiModelProperty("用户编码")
@TableField("user_code")
private String userCode;
@ExcelProperty("用户类型")
@ApiModelProperty("用户类型")
@TableField("user_type")
private String userType;
@ExcelProperty("用户状态")
@ApiModelProperty("用户状态")
@TableField("user_status")
private String userStatus;
@ApiModelProperty("所属部门")
@TableField("dept_id")
private String deptId;
@ExcelProperty("身份证")
@ApiModelProperty("身份证")
@TableField("identity_card")
private String identityCard;
@ExcelProperty("性别")
@ApiModelProperty("性别")
@TableField("gender")
private String gender;
@ExcelProperty("手机号码")
@ApiModelProperty("手机号码")
@TableField("mobile")
private String mobile;
@ExcelProperty("邮箱")
@ApiModelProperty("邮箱")
@TableField("email")
private String email;
@ExcelProperty("入职日期")
@ApiModelProperty("入职日期")
@TableField("hiredate")
private LocalDate hiredate;
@ExcelProperty("出生日期")
@ApiModelProperty("出生日期")
@TableField("birthdate")
private LocalDate birthdate;
@ExcelProperty("学历")
@ApiModelProperty("学历")
@TableField("education")
private String education;
@ExcelProperty("专业")
@ApiModelProperty("专业")
@TableField("major_field")
private String majorField;
@ExcelProperty("工作方向")
@ApiModelProperty("工作方向")
@TableField("work_field")
private String workField;
@ExcelProperty("最后登录ip")
@ApiModelProperty("最后登录ip")
@TableField("last_login_ip")
private String lastLoginIp;
@ExcelProperty("最后登录时间")
@ApiModelProperty("最后登录时间")
@TableField("last_login_time")
private LocalDateTime lastLoginTime;
@ExcelProperty("密码修改时间")
@ApiModelProperty("密码修改时间")
@TableField("password_update_time")
private LocalDateTime passwordUpdateTime;
@ExcelProperty("删除标志0代表存在 1代表删除")
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,35 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/5/15 23:33
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user_post")
@ApiModel(value="UserPostEntity对象", description="用户和岗位信息表")
public class UserPostEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -4046474045225600954L;
@ApiModelProperty("用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty("岗位id")
@TableField("post_id")
private String postId;
}

View File

@ -0,0 +1,35 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/5/15 23:33
* @Description:
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user_role")
@ApiModel(value="UserRoleEntity对象", description="用户和角色信息表")
public class UserRoleEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1078827043026958140L;
@ApiModelProperty("用户id")
@TableField("user_id")
private String userId;
@ApiModelProperty("角色id")
@TableField("role_id")
private String roleId;
}

View File

@ -0,0 +1,75 @@
package com.dite.znpt.domain.entity;
import java.io.Serial;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/06/09 09:44
* @Description: 视频文件信息表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("video_file_info")
@ApiModel(value="VideoFileInfoEntity对象", description="视频文件信息表")
public class VideoFileInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 306867911204598834L;
@ExcelProperty("id")
@ApiModelProperty("id")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@ExcelProperty("部件id")
@ApiModelProperty(value = "部件id",required = true)
@TableField("part_id")
private String partId;
@ExcelProperty("测试点")
@ApiModelProperty("测试点")
@TableField("test_point")
private String testPoint;
@ExcelProperty("作业人员id")
@ApiModelProperty("作业人员id")
@TableField("worker_user_id")
private String workerUserId;
@ExcelProperty("拍摄时间")
@ApiModelProperty("拍摄时间")
@TableField("shooting_time")
private LocalDateTime shootingTime;
@ExcelProperty("拍摄地点")
@ApiModelProperty("拍摄地点")
@TableField("location")
private String location;
@ExcelProperty("是否合格默认合格1")
@ApiModelProperty("是否合格默认合格1")
@TableField("qualified")
private Integer qualified;
@ExcelProperty("是否已抓帧默认未抓帧0")
@ApiModelProperty("是否已抓帧默认未抓帧0")
@TableField("frame_capture")
private Integer frameCapture;
@ExcelProperty("文件保存路径")
@ApiModelProperty("文件保存路径")
@TableField("file_path")
private String filePath;
}

View File

@ -0,0 +1,42 @@
package com.dite.znpt.domain.entity;
import java.math.BigDecimal;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 天气类型表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("weather_type")
@ApiModel(value="WeatherTypeEntity对象", description="天气类型表")
public class WeatherTypeEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = -74787545166894805L;
@ExcelProperty("天气类型id")
@ApiModelProperty("天气类型id")
@TableId(value = "weather_code", type = IdType.ASSIGN_UUID)
private String weatherCode;
@ExcelProperty("天气类型中文描述")
@ApiModelProperty("天气类型中文描述")
@TableField("chinese_name")
private String chineseName;
@ExcelProperty("对施工进度的影响系数")
@ApiModelProperty("对施工进度的影响系数")
@TableField("impact_factor")
private BigDecimal impactFactor;
}

View File

@ -0,0 +1,85 @@
package com.dite.znpt.domain.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.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalTime;
/**
* @author Bear.G
* @date 2025/6/30/周一 10:08
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("work_shift")
@ApiModel(value="WorkShitEntity对象", description="班次信息")
public class WorkShiftEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1912356282767651959L;
@ApiModelProperty("班次id")
@TableId(value = "work_shift_id", type = IdType.ASSIGN_UUID)
private String workShiftId;
@ApiModelProperty("班次名称")
@TableField("work_shift_name")
private String workShiftName;
@ApiModelProperty("上班时间")
@TableField("work_time_start")
private LocalTime workTimeStart;
@ApiModelProperty("迟到豁免时间,单位分钟")
@TableField("late_time_offset")
private Integer lateTimeOffset;
@ApiModelProperty("迟到时间临界值,单位分钟")
@TableField("late_time_limit")
private Integer lateTimeLimit;
@ApiModelProperty("下班时间")
@TableField("work_time_end")
private LocalTime workTimeEnd;
@ApiModelProperty("早退豁免时间,单位分钟")
@TableField("early_time_offset")
private Integer earlyTimeOffset;
@ApiModelProperty("早退时间临界值,单位分钟")
@TableField("early_time_limit")
private Integer earlyTimeLimit;
@ApiModelProperty("休息时间开始")
@TableField("rest_time_start")
private LocalTime restTimeStart;
@ApiModelProperty("休息时间结束")
@TableField("rest_time_end")
private LocalTime restTimeEnd;
@ApiModelProperty("工作时间长")
@TableField("work_time")
private Integer workTime;
@ApiModelProperty("状态0-已发布1-未发布")
@TableField("status")
private String status;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableField("del_flag")
private String delFlag;
}

View File

@ -0,0 +1,58 @@
package com.dite.znpt.domain.entity.job;
import com.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@Deprecated
public class DefectDTO {
@ApiModelProperty(value = "缺陷详情", example = "缺陷详情", notes = "缺陷详情")
@QueryCondition(func = MatchType.like)
private String content;
@ApiModelProperty(value = "缺陷图片", example = "123.png", notes = "缺陷图片")
@QueryCondition(func = MatchType.like)
@JsonIgnore
private String flawUrl;
@ApiModelProperty(value = "封面图片", example = "123.png", notes = "封面图片")
@QueryCondition(func = MatchType.like)
private String coverUrl;
@ApiModelProperty(value = "缺陷类型编码", example = "A123", notes = "缺陷类型编码")
@QueryCondition(func = MatchType.like)
private String defectTypeCode;
@ApiModelProperty(value = "缺陷位置1", example = "GG1", notes = "缺陷位置1")
@QueryCondition(func = MatchType.like)
private String defectLocation1;
@ApiModelProperty(value = "缺陷位置1尺寸", example = "1.5", notes = "缺陷位置1尺寸")
@QueryCondition(func = MatchType.like)
private String defectLocation1Size;
@ApiModelProperty(value = "缺陷位置2", example = "GG1", notes = "缺陷位置2")
@QueryCondition(func = MatchType.like)
private String defectLocation2;
@ApiModelProperty(value = "缺陷尺寸", example = "10", notes = "缺陷尺寸")
@QueryCondition(func = MatchType.like)
private String defectSize;
@ApiModelProperty(value = "缺陷尺寸2", example = "10", notes = "缺陷尺寸2")
@QueryCondition(func = MatchType.like)
private String defectSize2;
@ApiModelProperty(value = "缺陷等级编码", example = "aa", notes = "缺陷等级编码")
@QueryCondition(func = MatchType.equal)
private String criticalityLevelCode;
@ApiModelProperty(value = "缺陷图片,多个逗号隔开", example = "[https://123.png]", notes = "缺陷图片,多个逗号隔开")
private List<String> flawUrlList;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,131 @@
package com.dite.znpt.domain.entity.job;
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.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* @author wujinsong
* @date 2023/2/16 22:50
* @description: 项目中指定机组各人员内部工作内容
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("gaea_job_in_work")
public class JobInWork extends AuditableEntity implements Serializable {
@ApiModelProperty(value = "id", example = "78979879375", notes = "id")
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String Id;
@ApiModelProperty(value = "岗位id", example = "78979879375", notes = "岗位id")
@QueryCondition(func = MatchType.like)
private String jobId;
@ApiModelProperty(value = "安全交底及安全风险点照片", example = "https://123.png,https://456.png", notes = "安全交底及安全风险点照片")
private String safetyRiskPointImages;
@ApiModelProperty(value = "地勤工作描述", example = "工作描述工作描述", notes = "地勤工作描述")
private String jobDesc;
@ApiModelProperty(value = "地勤照片", example = "https://123.png,https://456.png", notes = "地勤照片")
private String images;
@ApiModelProperty(value = "地勤工作地点描述", example = "工作地点描述工作地点描述", notes = "地勤工作地点描述")
private String groundServiceJobAddressDesc;
@ApiModelProperty(value = "地勤工作地点照片", example = "https://123.png,https://456.png", notes = "地勤工作地点照片")
private String groundServiceJobAddressImages;
@ApiModelProperty(value = "地勤安全管控描述", example = "安全管控描述安全管控描述", notes = "地勤安全管控描述")
private String groundServiceSecurityControlDesc;
@ApiModelProperty(value = "地勤安全管控照片", example = "https://123.png,https://456.png", notes = "地勤安全管控照片")
private String groundServiceSecurityControlImages;
@ApiModelProperty(value = "地勤工作时间", example = "2022-01-22 10:00:00", notes = "地勤工作时间")
private String groundServiceWorkTime;
@ApiModelProperty(value = "司机工作描述", example = "工作描述工作描述", notes = "司机工作描述")
private String driverJobDesc;
@ApiModelProperty(value = "司机照片", example = "https://123.png,https://456.png", notes = "司机照片")
private String driverImages;
@ApiModelProperty(value = "司机工作地点描述", example = "工作地点描述工作地点描述", notes = "司机工作地点描述")
private String driverJobAddressDesc;
@ApiModelProperty(value = "司机工作地点照片", example = "https://123.png,https://456.png", notes = "司机工作地点照片")
private String driverJobAddressImages;
@ApiModelProperty(value = "司机安全管控描述", example = "安全管控描述安全管控描述", notes = "司机安全管控描述")
private String driverSecurityControlDesc;
@ApiModelProperty(value = "司机安全管控照片", example = "https://123.png,https://456.png", notes = "司机安全管控照片")
private String driverSecurityControlImages;
@ApiModelProperty(value = "司机工作时间", example = "2022-01-22 10:00:00", notes = "司机工作时间")
private String driverWorkTime;
@ApiModelProperty(value = "登高工作描述", example = "工作描述工作描述", notes = "登高工作描述")
private String ascendingJobDesc;
@ApiModelProperty(value = "登高照片", example = "工作描述工作描述", notes = "登高照片")
private String ascendingImages;
@ApiModelProperty(value = "登高工作地点描述", example = "工作地点描述工作地点描述", notes = "登高工作地点描述")
private String ascendingJobAddressDesc;
@ApiModelProperty(value = "登高工作地点照片", example = "https://123.png,https://456.png", notes = "登高工作地点照片")
private String ascendingJobAddressImages;
@ApiModelProperty(value = "登高安全管控描述", example = "安全管控描述安全管控描述", notes = "登高安全管控描述")
private String ascendingSecurityControlDesc;
@ApiModelProperty(value = "登高安全管控照片", example = "https://123.png,https://456.png", notes = "登高安全管控照片")
private String ascendingSecurityControlImages;
@ApiModelProperty(value = "登高工作时间", example = "2022-01-22 10:00:00", notes = "登高工作时间")
private String ascendingWorkTime;
@ApiModelProperty(value = "登高等级", example = "1一级 2二级 3三级 4四级 5五级", notes = "登高等级")
@QueryCondition(func = MatchType.like)
private String ascendingLevel;
@ApiModelProperty(value = "登高部件列表", example = "[]", notes = "登高部件列表")
@TableField(exist = false)
@QueryCondition(func = MatchType.equal)
private List<JobInWorkParts> ascendingPartsList;
@ApiModelProperty(value = "状态", example = "0草稿 1已提交 2组长提交 3项目经理审批通过", notes = "状态")
@QueryCondition(func = MatchType.equal)
private String status;
@ApiModelProperty(value = "安全员审批状态", example = "0未审批 1已审批", notes = "安全员审批状态")
@QueryCondition(func = MatchType.equal)
private String safetyOfficerStatus;
@ApiModelProperty(value = "质量员审批状态", example = "0未审批 1已审批", notes = "质量员审批状态")
@QueryCondition(func = MatchType.equal)
private String qualityOfficerStatus;
@ApiModelProperty(value = "施工人员", example = "施工人员", notes = "施工人员")
@TableField(exist = false)
@QueryCondition(func = MatchType.equal)
private String constructionPersonnel;
@ApiModelProperty(value = "具体岗位", example = "具体岗位", notes = "具体岗位")
@TableField(exist = false)
@QueryCondition(func = MatchType.equal)
private String jobCode;
}

View File

@ -0,0 +1,128 @@
package com.dite.znpt.domain.entity.job;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @author wujinsong
* @date 2023/2/16 22:50
* @description: 项目中指定机组各人员内部工作内容
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("gaea_job_in_work_parts")
public class JobInWorkParts extends AuditableEntity implements Serializable {
@ApiModelProperty(value = "id", example = "78979879375", notes = "id")
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String Id;
@ApiModelProperty(value = "岗位id", example = "78979879375", notes = "岗位id")
@QueryCondition(func = MatchType.like)
private String jobId;
@ApiModelProperty(value = "叶片盖板原照片", example = "https://123.png,https://456.png", notes = "叶片盖板原照片")
private String leafPlateImages;
@ApiModelProperty(value = "叶片盖板原描述", example = "工作描述工作描述", notes = "叶片盖板原描述")
private String leafPlateDesc;
@ApiModelProperty(value = "叶片铭牌照片", example = "https://123.png,https://456.png", notes = "叶片铭牌照片")
private String leafDogtagImages;
@ApiModelProperty(value = "叶片铭牌描述", example = "工作描述工作描述", notes = "叶片铭牌描述")
private String leafDogtagDesc;
@ApiModelProperty(value = "叶片概况照片", example = "https://123.png,https://456.png", notes = "叶片概况照片")
private String leafProfileImages;
@ApiModelProperty(value = "叶片概况描述", example = "工作描述工作描述", notes = "叶片概况描述")
private String leafProfileDesc;
@ApiModelProperty(value = "腹板变形情况照片", example = "https://123.png,https://456.png", notes = "腹板变形情况照片")
private String webDeformationImages;
@ApiModelProperty(value = "腹板变形情况", example = "0未变形 1有变形", notes = "腹板变形情况")
private String webDeformation;
@ApiModelProperty(value = "腹板开裂情况照片", example = "https://123.png,https://456.png", notes = "腹板开裂情况照片")
private String webCrazeImages;
@ApiModelProperty(value = "腹板开裂情况", example = "0未开裂 1有开裂", notes = "腹板开裂情况")
private String webCraze;
@ApiModelProperty(value = "腹板粘接缝照片", example = "https://123.png,https://456.png", notes = "腹板粘接缝照片")
private String webGluedJointImages;
@ApiModelProperty(value = "腹板粘接缝开裂情况", example = "0未开裂 1有开裂", notes = "腹板粘接缝开裂情况")
private String webGluedJoint;
@ApiModelProperty(value = "后缘粘接缝照片", example = "https://123.png,https://456.png", notes = "后缘粘接缝照片")
private String trailingEdgeGluedJointImages;
@ApiModelProperty(value = "后缘粘接缝开裂情况", example = "0未开裂 1有开裂", notes = "后缘粘接缝开裂情况")
private String trailingEdgeGluedJoint;
@ApiModelProperty(value = "前缘粘接缝照片", example = "https://123.png,https://456.png", notes = "前缘粘接缝照片")
private String leadingEdgeGluedJointImages;
@ApiModelProperty(value = "前缘粘接缝开裂情况", example = "0未开裂 1有开裂", notes = "前缘粘接缝开裂情况")
private String leadingEdgeGluedJoint;
@ApiModelProperty(value = "ps/ss面开裂情况照片", example = "https://123.png,https://456.png", notes = "ps/ss面开裂情况照片")
private String psCrackingImages;
@ApiModelProperty(value = "ps/ss面开裂情况", example = "0未开裂 1有开裂", notes = "ps/ss面开裂情况")
private String psCracking;
@ApiModelProperty(value = "ps/ss面褶皱情况照片", example = "https://123.png,https://456.png", notes = "ps/ss面褶皱情况照片")
private String psWrinkleImages;
@ApiModelProperty(value = "ps/ss面褶皱情况", example = "0无褶皱 1有褶皱", notes = "ps/ss面褶皱情况")
private String psWrinkle;
@ApiModelProperty(value = "ps/ss面发白情况照片", example = "https://123.png,https://456.png", notes = "ps/ss面发白情况照片")
private String psGrowWhiteImages;
@ApiModelProperty(value = "ps/ss面发白情况", example = "0无发白 1有发白", notes = "ps/ss面发白情况")
private String psGrowWhite;
@ApiModelProperty(value = "ps/ss面碳化情况照片", example = "https://123.png,https://456.png", notes = "ps/ss面碳化情况照片")
private String psCarbonizeImages;
@ApiModelProperty(value = "ps/ss面碳化情况", example = "0无碳化 1有碳化", notes = "ps/ss面碳化情况")
private String psCarbonize;
@ApiModelProperty(value = "ps/ss面局部透光照片", example = "https://123.png,https://456.png", notes = "ps/ss面局部透光照片")
private String psTransmittingImages;
@ApiModelProperty(value = "ps/ss面局部透光", example = "0无透光 1有透光", notes = "ps/ss面局部透光")
private String psTransmitting;
@ApiModelProperty(value = "防雷导线松脱、断开照片", example = "https://123.png,https://456.png", notes = "防雷导线松脱、断开照片")
private String lightningConductorImages;
@ApiModelProperty(value = "防雷导线松脱、断开", example = "0无异常 1有异常", notes = "防雷导线松脱、断开")
private String lightningConductor;
@ApiModelProperty(value = "防雷卡遗失情况照片", example = "https://123.png,https://456.png", notes = "防雷卡遗失情况照片")
private String lightningCardLostImages;
@ApiModelProperty(value = "防雷卡遗失情况", example = "0无异常 1有异常", notes = "防雷卡遗失情况")
private String lightningCardLost;
@ApiModelProperty(value = "叶片盖板检查后照片", example = "https://123.png,https://456.png", notes = "叶片盖板检查后照片")
private String leafProfileCheckImages;
@ApiModelProperty(value = "叶片盖板检查后描述", example = "工作描述工作描述", notes = "叶片盖板检查后描述")
private String leafProfileCheckDesc;
}

View File

@ -0,0 +1,70 @@
package com.dite.znpt.domain.entity.job;
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.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* @author wujinsong
* @date 2023/2/16 22:50
* @description: 项目中指定机组各人员工作岗位
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("gaea_job")
public class JobInfo extends AuditableEntity implements Serializable {
@ApiModelProperty(value = "id", example = "78979879375", notes = "id")
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String Id;
@ApiModelProperty(value = "项目id", example = "78979879375", notes = "项目id")
@QueryCondition(func = MatchType.like)
private String projectId;
@ApiModelProperty(value = "机组id", example = "78979879375", notes = "机组id")
@QueryCondition(func = MatchType.like)
private String crewId;
@ApiModelProperty(value = "工作类型", example = "工作类型", notes = "工作类型")
@QueryCondition(func = MatchType.equal)
private String workType;
@ApiModelProperty(value = "具体岗位", example = "具体岗位", notes = "具体岗位")
@QueryCondition(func = MatchType.equal)
private String jobCode;
@ApiModelProperty(value = "施工人员", example = "施工人员", notes = "施工人员")
@QueryCondition(func = MatchType.like)
private String constructionPersonnel;
@ApiModelProperty(value = "施工人员id", example = "施工人员id", notes = "施工人员id")
@QueryCondition(func = MatchType.equal)
private String constructionPersonnelId;
@ApiModelProperty(value = "状态", example = "0草稿 1已提交 2组长提交 3项目经理审批通过", notes = "状态", hidden = true)
@QueryCondition(func = MatchType.equal)
private String status;
@ApiModelProperty(value = "安全员审批状态", example = "0未审批 1已审批", notes = "安全员审批状态", hidden = true)
@QueryCondition(func = MatchType.equal)
private String safetyOfficerStatus;
@ApiModelProperty(value = "质量员审批状态", example = "0未审批 1已审批", notes = "质量员审批状态", hidden = true)
@QueryCondition(func = MatchType.equal)
private String qualityOfficerStatus;
@ApiModelProperty(value = "提交时间", example = "2023-11-11", notes = "提交时间", hidden = true)
@QueryCondition(func = MatchType.equal)
private Date submitTime;
}

View File

@ -0,0 +1,210 @@
package com.dite.znpt.domain.entity.job;
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.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.dite.znpt.domain.AuditableEntity;
import com.dite.znpt.domain.dto.OutWorkDefectDTO;
import com.dite.znpt.typehandle.ArrayObjectTypeHandler;
import com.dite.znpt.typehandle.OutworkDefectHandler;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* @author wujinsong
* @date 2023/2/16 22:50
* @description: 项目中指定机组各人员外部工作内容
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("gaea_job_out_work")
public class JobOutWork extends AuditableEntity implements Serializable {
@ApiModelProperty(value = "id", example = "78979879375", notes = "id")
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String Id;
@ApiModelProperty(value = "岗位id", example = "78979879375", notes = "岗位id")
@QueryCondition(func = MatchType.like)
private String jobId;
@ApiModelProperty(value = "安全交底及安全风险点照片", example = "https://123.png,https://456.png", notes = "安全交底及安全风险点照片")
private String safetyRiskPointImages;
@ApiModelProperty(value = "司机工作描述", example = "工作描述工作描述", notes = "司机工作描述")
private String driverJobDesc;
@ApiModelProperty(value = "司机照片", example = "https://123.png,https://456.png", notes = "司机照片")
private String driverImages;
@ApiModelProperty(value = "司机工作地点描述", example = "工作地点描述工作地点描述", notes = "司机工作地点描述")
private String driverJobAddressDesc;
@ApiModelProperty(value = "司机工作地点照片", example = "https://123.png,https://456.png", notes = "司机工作地点照片")
private String driverJobAddressImages;
@ApiModelProperty(value = "司机安全管控描述", example = "安全管控描述安全管控描述", notes = "司机安全管控描述")
private String driverSecurityControlDesc;
@ApiModelProperty(value = "司机安全管控照片", example = "https://123.png,https://456.png", notes = "司机安全管控照片")
private String driverSecurityControlImages;
@ApiModelProperty(value = "司机工作时间", example = "2022-01-22 10:00:00", notes = "司机工作时间")
private String driverWorkTime;
@ApiModelProperty(value = "地勤工作描述", example = "工作描述工作描述", notes = "地勤工作描述")
private String groundServiceJobDesc;
@ApiModelProperty(value = "地勤工作内容照片", example = "https://123.png,https://456.png", notes = "地勤工作内容照片")
private String groundServiceImages;
@ApiModelProperty(value = "地勤工作地点描述", example = "工作地点描述工作地点描述", notes = "地勤工作地点描述")
private String groundServiceJobAddressDesc;
@ApiModelProperty(value = "地勤工作地点照片", example = "https://123.png,https://456.png", notes = "地勤工作地点照片")
private String groundServiceJobAddressImages;
@ApiModelProperty(value = "地勤安全管控描述", example = "安全管控描述安全管控描述", notes = "地勤安全管控描述")
private String groundServiceSecurityControlDesc;
@ApiModelProperty(value = "地勤安全管控照片", example = "https://123.png,https://456.png", notes = "地勤安全管控照片")
private String groundServiceSecurityControlImages;
@ApiModelProperty(value = "地勤工作时间", example = "2022-01-22 10:00:00", notes = "地勤工作时间")
private String groundServiceWorkTime;
@ApiModelProperty(value = "飞手工作描述", example = "工作描述工作描述", notes = "飞手工作描述")
private String jobDesc;
@ApiModelProperty(value = "飞手工作照片", example = "https://123.png,https://456.png", notes = "飞手工作照片")
private String images;
@ApiModelProperty(value = "飞手工作地点描述", example = "工作地点描述工作地点描述", notes = "飞手工作地点描述")
private String droneFlyerJobAddressDesc;
@ApiModelProperty(value = "飞手工作地点照片", example = "https://123.png,https://456.png", notes = "飞手工作地点照片")
private String droneFlyerJobAddressImages;
@ApiModelProperty(value = "飞手安全管控描述", example = "安全管控描述安全管控描述", notes = "飞手安全管控描述")
private String droneFlyerSecurityControlDesc;
@ApiModelProperty(value = "飞手安全管控照片", example = "https://123.png,https://456.png", notes = "飞手安全管控照片")
private String droneFlyerSecurityControlImages;
@ApiModelProperty(value = "飞手工作时间", example = "2022-01-22 10:00:00", notes = "飞手工作时间")
private String droneFlyerWorkTime;
@ApiModelProperty(value = "飞手施工时间", example = "2022-01-22 10:00:00", notes = "飞手施工时间")
private String droneFlyerConstructionTime;
@ApiModelProperty(value = "飞手拍摄图片数量", example = "2", notes = "飞手拍摄图片数量")
private String droneFlyerImageCount;
@ApiModelProperty(value = "飞手拍摄图片质量", example = "10", notes = "飞手拍摄图片质量")
private String droneFlyerImageQuality;
@ApiModelProperty(value = "飞手部件列表", example = "[]", notes = "部件列表")
@TableField(typeHandler = OutworkDefectHandler.class)
private List<OutWorkDefectDTO> droneFlyerPartsList;
@ApiModelProperty(value = "飞助工作描述", example = "工作描述工作描述", notes = "飞助工作描述")
private String flyAidJobDesc;
@ApiModelProperty(value = "飞助照片", example = "https://123.png,https://456.png", notes = "飞助照片")
private String flyAidImages;
@ApiModelProperty(value = "飞助工作地点描述", example = "工作地点描述工作地点描述", notes = "飞助工作地点描述")
private String flyAidJobAddressDesc;
@ApiModelProperty(value = "飞助工作地点照片", example = "https://123.png,https://456.png", notes = "飞助工作地点照片")
private String flyAidJobAddressImages;
@ApiModelProperty(value = "飞助安全管控描述", example = "安全管控描述安全管控描述", notes = "飞助安全管控描述")
private String flyAidSecurityControlDesc;
@ApiModelProperty(value = "飞助安全管控照片", example = "https://123.png,https://456.png", notes = "飞助安全管控照片")
private String flyAidSecurityControlImages;
@ApiModelProperty(value = "飞助工作时间", example = "2022-01-22 10:00:00", notes = "飞助工作时间")
private String flyAidWorkTime;
@ApiModelProperty(value = "飞助施工时间", example = "2022-01-22 10:00:00", notes = "飞助施工时间")
private String flyAidConstructionTime;
@ApiModelProperty(value = "飞助拍摄图片数量", example = "2", notes = "飞助拍摄图片数量")
private String flyAidImageCount;
@ApiModelProperty(value = "飞助拍摄图片质量", example = "10", notes = "飞助拍摄图片质量")
private String flyAidImageQuality;
@ApiModelProperty(value = "飞助部件列表", example = "[]", notes = "部件列表")
@TableField(typeHandler = OutworkDefectHandler.class)
private List<OutWorkDefectDTO> flyAidPartsList;
@ApiModelProperty(value = "登高工作描述", example = "工作描述工作描述", notes = "登高工作描述")
private String ascendingJobDesc;
@ApiModelProperty(value = "登高等级", example = "1一级 2二级 3三级 4四级 5五级", notes = "登高等级")
@QueryCondition(func = MatchType.like)
private String ascendingLevel;
@ApiModelProperty(value = "登高照片", example = "https://123.png,https://456.png", notes = "登高照片")
private String ascendingImages;
@ApiModelProperty(value = "登高工作地点描述", example = "工作地点描述工作地点描述", notes = "登高工作地点描述")
private String ascendingJobAddressDesc;
@ApiModelProperty(value = "登高工作地点照片", example = "https://123.png,https://456.png", notes = "登高工作地点照片")
private String ascendingJobAddressImages;
@ApiModelProperty(value = "登高安全管控描述", example = "安全管控描述安全管控描述", notes = "登高安全管控描述")
private String ascendingSecurityControlDesc;
@ApiModelProperty(value = "登高安全管控照片", example = "https://123.png,https://456.png", notes = "登高安全管控照片")
private String ascendingSecurityControlImages;
@ApiModelProperty(value = "登高工作时间", example = "2022-01-22 10:00:00", notes = "登高工作时间")
private String ascendingWorkTime;
@ApiModelProperty(value = "登高施工时间", example = "2022-01-22 10:00:00", notes = "登高施工时间")
private String ascendingConstructionTime;
@ApiModelProperty(value = "登高拍摄图片数量", example = "2", notes = "登高拍摄图片数量")
private String ascendingImageCount;
@ApiModelProperty(value = "登高拍摄图片质量", example = "10", notes = "登高拍摄图片质量")
private String ascendingImageQuality;
@ApiModelProperty(value = "登高部件列表", example = "[]", notes = "部件列表")
@TableField(typeHandler = OutworkDefectHandler.class)
private List<OutWorkDefectDTO> ascendingPartsList;
@ApiModelProperty(value = "状态", example = "0草稿 1已提交 2组长提交 3项目经理审批通过", notes = "状态")
@QueryCondition(func = MatchType.equal)
private String status;
@ApiModelProperty(value = "安全员审批状态", example = "0未审批 1已审批", notes = "安全员审批状态")
@QueryCondition(func = MatchType.equal)
private String safetyOfficerStatus;
@ApiModelProperty(value = "质量员审批状态", example = "0未审批 1已审批", notes = "质量员审批状态")
@QueryCondition(func = MatchType.equal)
private String qualityOfficerStatus;
@ApiModelProperty(value = "施工人员", example = "施工人员", notes = "施工人员")
@TableField(exist = false)
@QueryCondition(func = MatchType.equal)
private String constructionPersonnel;
@ApiModelProperty(value = "具体岗位", example = "具体岗位", notes = "具体岗位")
@TableField(exist = false)
@QueryCondition(func = MatchType.equal)
private String jobCode;
}

View File

@ -0,0 +1,49 @@
package com.dite.znpt.domain.entity.job;
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.dite.znpt.annotations.MatchType;
import com.dite.znpt.annotations.QueryCondition;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @author wujinsong
* @date 2023/2/16 22:50
* @description: 项目中指定机组各人员外部工作内容
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("gaea_job_summary_work")
public class JobSummaryWork extends AuditableEntity implements Serializable {
@ApiModelProperty(value = "id", example = "78979879375", notes = "id")
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String Id;
@ApiModelProperty(value = "岗位id", example = "78979879375", notes = "岗位id")
@QueryCondition(func = MatchType.like)
private String jobId;
@ApiModelProperty(value = "工作描述", example = "工作描述工作描述", notes = "工作描述")
@QueryCondition(func = MatchType.equal)
private String jobDesc;
@ApiModelProperty(value = "状态", example = "0草稿 1已提交 2组长提交 3项目经理审批通过", notes = "状态")
@QueryCondition(func = MatchType.equal)
private String status;
@ApiModelProperty(value = "施工人员", example = "施工人员", notes = "施工人员")
@TableField(exist = false)
private String constructionPersonnel;
@ApiModelProperty(value = "具体岗位", example = "具体岗位", notes = "具体岗位")
@TableField(exist = false)
private String jobCode;
}

View File

@ -0,0 +1,67 @@
package com.dite.znpt.domain.page;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import lombok.Data;
import java.util.Objects;
/**
* 分页数据
*
* @author kyland
*/
@Data
public class PageDomain {
/**
* 当前记录起始索引
*/
private Integer pageNum;
/**
* 每页显示记录数
*/
private Integer pageSize;
/**
* 排序列
*/
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
private String isAsc = "asc";
/**
* 分页参数合理化
*/
private Boolean reasonable = true;
public String getOrderBy() {
if (StrUtil.isEmpty(orderByColumn)) {
return "";
}
return StrUtil.toUnderlineCase(orderByColumn) + " " + isAsc;
}
public void setIsAsc(String isAsc) {
if (StrUtil.isNotEmpty(isAsc)) {
// 兼容前端排序类型
if ("ascending".equals(isAsc)) {
isAsc = "asc";
} else if ("descending".equals(isAsc)) {
isAsc = "desc";
}
this.isAsc = isAsc;
}
}
public boolean getReasonable() {
return BooleanUtil.isTrue(reasonable)|| Objects.isNull(reasonable);
}
public void setReasonable(Boolean reasonable) {
this.reasonable = reasonable;
}
}

View File

@ -0,0 +1,74 @@
package com.dite.znpt.domain.page;
import cn.hutool.core.convert.Convert;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* 表格数据处理
*
* @author kyland
*/
public class TableSupport {
/**
* 当前记录起始索引
*/
public static final String PAGE_NUM = "pageNum";
/**
* 每页显示记录数
*/
public static final String PAGE_SIZE = "pageSize";
/**
* 排序列
*/
public static final String ORDER_BY_COLUMN = "orderByColumn";
/**
* 排序的方向 "desc" 或者 "asc".
*/
public static final String IS_ASC = "isAsc";
/**
* 分页参数合理化
*/
public static final String REASONABLE = "reasonable";
/**
* 封装分页对象
*/
public static PageDomain getPageDomain() {
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(Convert.toInt(getRequest().getParameter(PAGE_NUM), 1));
pageDomain.setPageSize(Convert.toInt(getRequest().getParameter(PAGE_SIZE), 10));
pageDomain.setOrderByColumn(getRequest().getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(getRequest().getParameter(IS_ASC));
pageDomain.setReasonable(Convert.toBool(getRequest().getParameter(REASONABLE)));
return pageDomain;
}
public static PageDomain buildPageRequest() {
return getPageDomain();
}
public static ServletRequestAttributes getRequestAttributes() {
try {
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
return (ServletRequestAttributes)attributes;
} catch (Exception var1) {
return null;
}
}
public static HttpServletRequest getRequest() {
try {
return getRequestAttributes().getRequest();
} catch (Exception var1) {
return null;
}
}
}

View File

@ -0,0 +1,32 @@
package com.dite.znpt.domain.vo;
import com.dite.znpt.domain.entity.ImageEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class AppImageResp extends ImageEntity {
@ApiModelProperty("部件名称")
private String partName;
@ApiModelProperty("机组号")
private String turbineId;
@ApiModelProperty("机组名称")
private String turbineName;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("机组名称")
private String projectName;
@ApiModelProperty("上传用户")
private String uploadUser;
@ApiModelProperty(name = "图像来源枚举ImageSourceEnum")
private String imageSource;
}

View File

@ -0,0 +1,53 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class AppImageToPartReq {
@ApiModelProperty(value = "图片路径列表", required = true)
private List<String> imagePaths;
@ApiModelProperty(value = "部件id", required = true)
private String partId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("拍摄时间-起")
private LocalDateTime shootingTimeBegin;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("拍摄时间-止")
private LocalDateTime shootingTimeEnd;
@ApiModelProperty("天气,枚举WeatherEnum")
private String weather;
@ApiModelProperty("湿度(百分比)")
private Integer humidness;
@ApiModelProperty("温度-低")
private Double temperatureMin;
@ApiModelProperty("温度-高")
private Double temperatureMax;
@ApiModelProperty("风力等级")
private Integer windLevel;
@ApiModelProperty("拍摄方式枚举ShootingMethodEnum")
private String shootingMethod;
@ApiModelProperty("拍摄距离")
private Integer shootingDistance;
@ApiModelProperty("采集员id")
private String collectorId;
@ApiModelProperty("采集员姓名")
private String collectorName;
}

View File

@ -0,0 +1,33 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author huise23
* @date 2025/06/25 21:59
* @Description: 附件信息表请求类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="AttachInfo请求对象", description="附件信息表")
public class AttachInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = -59837569061686176L;
@ApiModelProperty("自定义路径")
private String userDefinedPath;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("备注")
private String remark;
}

View File

@ -0,0 +1,45 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author huise23
* @date 2025/06/25 21:59
* @Description: 附件信息表请求类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="AttachInfo响应对象", description="附件信息表")
public class AttachInfoResp implements Serializable {
@Serial
private static final long serialVersionUID = -59837569061686176L;
@ApiModelProperty("附件id")
private String attachId;
@ApiModelProperty("业务id")
private String businessId;
@ApiModelProperty("附件路径")
private String attachPath;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("备注")
private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty
private LocalDateTime createTime;
}

View File

@ -0,0 +1,34 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/7/21 21:10
* @Description:
*/
@Data
@ApiModel("考勤记录请求对象")
public class AttendanceRecordReq implements Serializable {
@Serial
private static final long serialVersionUID = 3567864990724491657L;
@NotBlank(message = "打卡照片不能为空")
@ApiModelProperty("打卡照片")
private String recordImage;
@NotBlank(message = "打卡地点不能为空")
@ApiModelProperty("打卡地点,经纬度")
private String recordPosition;
@ApiModelProperty("打卡地点,中文描述")
private String recordPositionLabel;
}

View File

@ -0,0 +1,54 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @Author: gaoxiong
* @Date: 2025/7/21 21:11
* @Description:
*/
@Data
@ApiModel("考勤记录响应对象")
public class AttendanceRecordResp implements Serializable {
@Serial
private static final long serialVersionUID = -4158464225924809958L;
@ApiModelProperty("考勤记录id")
private String recordId;
@ApiModelProperty("考勤人员id")
private String userId;
@ApiModelProperty("考勤人员")
private String name;
@ApiModelProperty("记录类型, 0-上班1-下班2-无效")
private String recordType;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("考勤日期")
private LocalDate attendanceDate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("打卡时间")
private LocalDateTime recordTime;
@ApiModelProperty("打卡照片")
private String recordImage;
@ApiModelProperty("打卡地点,经纬度")
private String recordPosition;
@ApiModelProperty("打卡地点,中文描述")
private String recordPositionLabel;
}

View File

@ -0,0 +1,32 @@
package com.dite.znpt.domain.vo;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author huise23
* @date 2025/06/23 13:39
* @Description: 音频文件信息请求实体
*/
@Data
@ApiModel("音频文件信息列表请求实体")
public class AudioFileInfoListReq implements Serializable {
private static final long serialVersionUID = -88739013562163458L;
@ApiModelProperty("音频文件信息Id")
private String audioId;
@ApiModelProperty("图片id")
private String imageId;
@ApiModelProperty("图片ids")
private List<String> imageIds;
}

View File

@ -0,0 +1,32 @@
package com.dite.znpt.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author huise23
* @date 2025/06/23 13:39
* @Description: 音频文件信息响应实体
*/
@Data
@ApiModel("音频文件信息响应实体")
public class AudioFileInfoResp {
@ExcelProperty("audioId")
@ApiModelProperty("audioId")
private String audioId;
@ExcelProperty("图片id")
@ApiModelProperty("图片id")
private String imageId;
@ExcelProperty("文件保存路径")
@ApiModelProperty("文件保存路径")
private String filePath;
}

View File

@ -0,0 +1,29 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/5/27/周二 15:25
* @description
*/
@Data
@ApiModel("人员资质列表请求实体")
public class CertificationListReq implements Serializable {
@Serial
private static final long serialVersionUID = -2663690591627122279L;
@ApiModelProperty("姓名")
private String userName;
@ApiModelProperty("证书名称")
private String certificationName;
@ApiModelProperty("证书类型")
private String certificationType;
}

View File

@ -0,0 +1,55 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @author Bear.G
* @date 2025/5/27/周二 15:25
* @description
*/
@Data
@ApiModel("人员资质请求实体")
public class CertificationReq implements Serializable {
@Serial
private static final long serialVersionUID = 1737569842748352413L;
@NotBlank(message = "用户id不能为空")
@ApiModelProperty("用户id")
private String userId;
@NotBlank(message = "证书名称不能为空")
@Size(max = 50, message = "证书名称长度不能超过50")
@ApiModelProperty("证书名称")
private String certificationName;
@NotBlank(message = "证书编号不能为空")
@Size(max = 50, message = "证书编号长度不能超过50")
@ApiModelProperty("证书编号")
private String certificationCode;
@NotBlank(message = "证书类型不能为空")
@ApiModelProperty("证书类型")
private String certificationType;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("证书有效期-起")
private LocalDate validityDateBegin;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("证书有效期-讫")
private LocalDate validityDateEnd;
@NotBlank(message = "证书图片不能为空")
@ApiModelProperty("证书图片")
private String certificationImage;
}

View File

@ -0,0 +1,54 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @author Bear.G
* @date 2025/5/27/周二 15:25
* @description
*/
@Data
@ApiModel("人员资质响应实体")
public class CertificationResp implements Serializable {
@Serial
private static final long serialVersionUID = 4123163394817757998L;
@ApiModelProperty("证书id")
private String certificationId;
@ApiModelProperty("用户id")
private String userId;
@ApiModelProperty("用户姓名")
private String userName;
@ApiModelProperty("证书编号")
private String certificationCode;
@ApiModelProperty("证书名称")
private String certificationName;
@ApiModelProperty("证书类型")
private String certificationType;
@ApiModelProperty("证书类型描述")
private String certificationTypeLabel;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("证书有效期-起")
private LocalDate validityDateBegin;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("证书有效期-讫")
private LocalDate validityDateEnd;
@ApiModelProperty("证书图片")
private String certificationImage;
}

View File

@ -0,0 +1,27 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* @Author: gaoxiong
* @Date: 2025/7/9 23:35
* @Description:
*/
@Data
@ApiModel("检查方案列表查询请求实体")
public class CheckSchemeListReq implements Serializable {
@Serial
private static final long serialVersionUID = 1345082408495150993L;
@ApiModelProperty("检查方式枚举CheckMethodEnum")
private List<String> checkMethod;
}

View File

@ -0,0 +1,50 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/7/9 23:35
* @Description:
*/
@Data
@ApiModel("检查方案请求实体")
public class CheckSchemeReq implements Serializable {
@Serial
private static final long serialVersionUID = 2699725873314667276L;
@NotBlank(message = "工作内容不能为空")
@Size(max = 1000, message = "工作内容不能超过1000个字")
@ApiModelProperty("工作内容")
private String workContent;
@NotBlank(message = "人员配置不能为空")
@Size(max = 200, message = "人员配置不能超过200个字")
@ApiModelProperty("人员配置")
private String staffConfig;
@NotBlank(message = "设备配置不能为空")
@Size(max = 500, message = "设备配置不能超过500个字")
@ApiModelProperty("设备配置")
private String deviceConfig;
@NotBlank(message = "实施方案不能为空")
@Size(max = 2000, message = "实施方案不能超过2000个字")
@ApiModelProperty("实施方案")
private String constructionScheme;
@NotBlank(message = "检查方式不能为空")
@ApiModelProperty("检查方式枚举CheckMethodEnum")
private String checkMethod;
@Size(max = 500, message = "备注不能超过500个字")
@ApiModelProperty("备注")
private String remark;
}

View File

@ -0,0 +1,44 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @Author: gaoxiong
* @Date: 2025/7/9 23:14
* @Description:
*/
@Data
@ApiModel("检查方案响应实体")
public class CheckSchemeResp implements Serializable {
@Serial
private static final long serialVersionUID = 2327453920890578467L;
@ApiModelProperty("方案id")
private String schemeId;
@ApiModelProperty("工作内容")
private String workContent;
@ApiModelProperty("人员配置")
private String staffConfig;
@ApiModelProperty("设备配置")
private String deviceConfig;
@ApiModelProperty("实施方案")
private String constructionScheme;
@ApiModelProperty("检查方式枚举CheckMethodEnum")
private String checkMethod;
@ApiModelProperty("检查方式描述")
private String checkMethodLabel;
@ApiModelProperty("备注")
private String remark;
}

View File

@ -0,0 +1,42 @@
package com.dite.znpt.domain.vo;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 字典请求实体
*/
@Data
@ApiModel("字典列表请求实体")
public class CombinedDictListReq implements Serializable {
private static final long serialVersionUID = -71621812451720363L;
@ApiModelProperty("查询关键字")
private String keyword;
@ApiModelProperty("字典Id")
private String dictId;
@ApiModelProperty("字典类型")
private String dictType;
@ApiModelProperty("字典名称")
private String dictName;
@ApiModelProperty("父级id")
private Long parentId;
@ApiModelProperty("字典排序")
private Integer sortOrder;
@ApiModelProperty("是否字典终值")
private Boolean finalState;
}

View File

@ -0,0 +1,18 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.dite.znpt.domain.entity.CombinedDictEntity;
/**
* @author huise23
* @date 2025/04/11 23:17
* @Description: 字典响应实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("字典响应实体")
public class CombinedDictResp extends CombinedDictEntity {
}

View File

@ -0,0 +1,77 @@
package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dite.znpt.util.ValidationGroup;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同表导入请求类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Contract导入请求对象", description="合同表")
public class ContractImportReq implements Serializable {
@Serial
private static final long serialVersionUID = 416194686656143643L;
@ExcelProperty(value = "客户名称")
private String customer;
@ExcelProperty(value = "合同编号")
private String code;
@ExcelProperty(value = "项目名称")
private String projectName;
@ExcelProperty(value = "业务员名称")
private String salespersonName;
@ExcelProperty(value = "部门名称")
private String departmentName;
@ExcelProperty(value = "签订日期")
private Date signDate;
@ExcelProperty(value = "期限")
private String duration;
@ExcelProperty(value = "类型")
private String type;
@ExcelProperty(value = "产品或服务")
private String productService;
@ExcelProperty(value = "付款日期/交付日期")
private Date paymentDate;
@ExcelProperty(value = "付款地址/交付地址")
private String paymentAddress;
@ExcelProperty(value = "金额")
private BigDecimal amount;
@ExcelProperty(value = "收款账号")
private String accountNumber;
@ExcelProperty(value = "备注")
private String notes;
@ExcelProperty(value = "合同状态")
private String contractStatus;
}

View File

@ -0,0 +1,76 @@
package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同请求实体
*/
@Data
@ApiModel("合同列表请求实体")
public class ContractListReq implements Serializable {
@Serial
private static final long serialVersionUID = 188906332887614727L;
@ApiModelProperty("查询关键字")
private String keyword;
@ApiModelProperty("合同Id")
private String contractId;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("合同编号")
private String code;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("业务员id")
private String salespersonId;
@ApiModelProperty("部门id")
private String departmentId;
@ApiModelProperty("签订日期")
private Date signDate;
@ApiModelProperty("期限")
private String duration;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("产品或服务")
private String productService;
@ApiModelProperty("付款日期/交付日期")
private Date paymentDate;
@ApiModelProperty("付款地址/交付地址")
private String paymentAddress;
@ApiModelProperty("金额")
private BigDecimal amount;
@ApiModelProperty("收款账号")
private String accountNumber;
@ApiModelProperty("备注")
private String notes;
@ApiModelProperty("合同状态")
private String contractStatus;
}

View File

@ -0,0 +1,80 @@
package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dite.znpt.util.ValidationGroup;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同表请求类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Contract请求对象", description="合同表")
public class ContractReq implements Serializable {
@Serial
private static final long serialVersionUID = -42338861509205617L;
@ApiModelProperty("合同id")
private String contractId;
@ApiModelProperty("客户名称")
private String customer;
@ApiModelProperty("合同编号")
private String code;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("业务员id")
private String salespersonId;
@ApiModelProperty("部门id")
private String departmentId;
@ApiModelProperty("签订日期")
private Date signDate;
@ApiModelProperty("期限")
private String duration;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("产品或服务")
private String productService;
@ApiModelProperty("付款日期/交付日期")
private Date paymentDate;
@ApiModelProperty("付款地址/交付地址")
private String paymentAddress;
@ApiModelProperty("金额")
private BigDecimal amount;
@ApiModelProperty("收款账号")
private String accountNumber;
@ApiModelProperty("备注")
private String notes;
@ApiModelProperty("合同状态")
private String contractStatus;
}

View File

@ -0,0 +1,39 @@
package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.dite.znpt.domain.entity.ContractEntity;
/**
* @author huise23
* @date 2025/07/21 20:29
* @Description: 合同响应实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("合同响应实体")
public class ContractResp extends ContractEntity {
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("业务员姓名")
private String salespersonName;
@ApiModelProperty("部门名称")
private String salespersonDeptName;
@ApiModelProperty("已结算金额")
private BigDecimal settlementAmount;
@ApiModelProperty("已收款金额")
private BigDecimal receivedAmount;
}

View File

@ -0,0 +1,74 @@
package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dite.znpt.util.ValidationGroup;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同结算表导入请求类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ContractSettlement导入请求对象", description="合同结算表")
public class ContractSettlementImportReq implements Serializable {
@Serial
private static final long serialVersionUID = 148613402074177824L;
@ExcelProperty(value = "合同名称(不能为空长度32以内)")
private String contractName;
@ExcelProperty(value = "客户/供应商名称")
private String customer;
@ExcelProperty(value = "合同结算编号")
private String code;
@ExcelProperty(value = "项目名称")
private String projectName;
@ExcelProperty(value = "业务员名称")
private String salespersonName;
@ExcelProperty(value = "部门名称")
private String departmentName;
@ExcelProperty(value = "账期")
private Date paymentPeriod;
@ExcelProperty(value = "日期")
private Date paymentDate;
@ExcelProperty(value = "期限")
private String duration;
@ExcelProperty(value = "产品或服务")
private String productService;
@ExcelProperty(value = "金额")
private BigDecimal amount;
@ExcelProperty(value = "收款账号")
private String accountNumber;
@ExcelProperty(value = "备注")
private String notes;
@ExcelProperty(value = "合同结算状态")
private String settlementStatus;
}

View File

@ -0,0 +1,73 @@
package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author huise23
* @date 2025/07/21 21:13
* @Description: 合同结算请求实体
*/
@Data
@ApiModel("合同结算列表请求实体")
public class ContractSettlementListReq implements Serializable {
@Serial
private static final long serialVersionUID = -36243842073737072L;
@ApiModelProperty("查询关键字")
private String keyword;
@ApiModelProperty("合同结算Id")
private String settlementId;
@ApiModelProperty("合同id")
private String contractId;
@ApiModelProperty("客户/供应商名称")
private String customer;
@ApiModelProperty("合同结算编号")
private String code;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("业务员id")
private String salespersonId;
@ApiModelProperty("部门id")
private String departmentId;
@ApiModelProperty("账期")
private Date paymentPeriod;
@ApiModelProperty("日期")
private Date paymentDate;
@ApiModelProperty("期限")
private String duration;
@ApiModelProperty("产品或服务")
private String productService;
@ApiModelProperty("金额")
private BigDecimal amount;
@ApiModelProperty("收款账号")
private String accountNumber;
@ApiModelProperty("备注")
private String notes;
@ApiModelProperty("合同结算状态")
private String settlementStatus;
}

Some files were not shown because too many files have changed in this diff Show More