用户、项目、机组和部件新增和编辑时增加校验逻辑
This commit is contained in:
parent
a84bbf6928
commit
fbddea1c30
|
@ -15,7 +15,12 @@
|
|||
<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>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
|
|
|
@ -1,25 +1,33 @@
|
|||
package com.dite.znpt.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||
|
||||
@Configuration
|
||||
public class WebMvcConfig extends WebMvcConfigurationSupport {
|
||||
|
||||
@Value(value = "${upload.temp-path.image}")
|
||||
private String uploadTempPath;
|
||||
|
||||
@Value(value = "${upload.perm-path.image}")
|
||||
private String uploadPermPath;
|
||||
|
||||
/**
|
||||
* MVC 加载Swagger静态资源
|
||||
* @param registry
|
||||
*/
|
||||
@Override
|
||||
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
registry.addResourceHandler("/**")
|
||||
.addResourceLocations("classpath:/static/");
|
||||
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/");
|
||||
|
||||
registry.addResourceHandler("/image/temp/**").addResourceLocations("file:" + uploadTempPath);
|
||||
registry.addResourceHandler("/image/**").addResourceLocations("file:" + uploadPermPath);
|
||||
|
||||
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
|
||||
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/");
|
||||
super.addResourceHandlers(registry);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.dite.znpt.domain;
|
||||
package com.dite.znpt.constant;
|
||||
|
||||
/**
|
||||
* @description: 常量
|
||||
|
@ -21,4 +21,14 @@ public class Constants {
|
|||
* 参数异常
|
||||
*/
|
||||
public static final String PARAMETER_EXCEPTION = "000003";
|
||||
|
||||
/**
|
||||
* 0:代表存在
|
||||
*/
|
||||
public static final String DEL_FLAG_0 = "0";
|
||||
|
||||
/**
|
||||
* 1:代表删除
|
||||
*/
|
||||
public static final String DEL_FLAG_1 = "1";
|
||||
}
|
|
@ -20,5 +20,5 @@ public class Message implements Serializable {
|
|||
public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在";
|
||||
public static final String PART_ID_IS_NOT_EXIST = "部件id不存在";
|
||||
public static final String IMAGE_SOURCE_ID_NOT_EXIST_OR_ILLEGAL = "部件id不存在";
|
||||
public static final String USER_ID_NOT_EXIST = "部件id不存在";
|
||||
public static final String USER_ID_NOT_EXIST = "用户id不存在";
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.dite.znpt.domain;
|
||||
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
|
|
|
@ -45,6 +45,11 @@ public class UserEntity extends AuditableEntity implements Serializable {
|
|||
@TableField("password")
|
||||
private String password;
|
||||
|
||||
@ExcelProperty("是否默认密码")
|
||||
@ApiModelProperty("是否默认密码")
|
||||
@TableField("is_default_password")
|
||||
private Boolean isDefaultPassword;
|
||||
|
||||
@ExcelProperty("加密盐")
|
||||
@ApiModelProperty("加密盐")
|
||||
@TableField("salt")
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
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;
|
||||
|
||||
|
@ -19,24 +22,31 @@ public class PartReq implements Serializable {
|
|||
@Serial
|
||||
private static final long serialVersionUID = -585044340118904985L;
|
||||
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "机组id不能为空")
|
||||
@ApiModelProperty("机组id")
|
||||
private String turbineId;
|
||||
|
||||
@ApiModelProperty("名称")
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "部件名称不能为空")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "部件名称长度不能超过50字符")
|
||||
@ApiModelProperty("部件名称")
|
||||
private String partName;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "部件编号长度不能超过20字符")
|
||||
@ApiModelProperty("部件编号")
|
||||
private String partCode;
|
||||
|
||||
@ApiModelProperty("类型,枚举PartTypeEnum")
|
||||
@ApiModelProperty("部件类型,枚举PartTypeEnum")
|
||||
private String partType;
|
||||
|
||||
@ApiModelProperty("描述")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 200, message = "部件描述长度不能超过200字符")
|
||||
@ApiModelProperty("部件描述")
|
||||
private String partDesc;
|
||||
|
||||
@ApiModelProperty("厂商")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "部件厂商长度不能超过20字符")
|
||||
@ApiModelProperty("部件厂商")
|
||||
private String PartManufacturer;
|
||||
|
||||
@ApiModelProperty("型号")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "部件型号长度不能超过20字符")
|
||||
@ApiModelProperty("部件型号")
|
||||
private String PartModel;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ public class ProjectListResp implements Serializable {
|
|||
private String farmName;
|
||||
|
||||
@ApiModelProperty("项目状态,枚举:ProjectStatusEnum")
|
||||
private String status;
|
||||
private int status;
|
||||
|
||||
@ApiModelProperty("项目状态,枚举:ProjectStatusEnum")
|
||||
private String statusLabel;
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
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;
|
||||
|
||||
|
@ -20,48 +22,57 @@ public class ProjectReq implements Serializable {
|
|||
@Serial
|
||||
private static final long serialVersionUID = 740685592879189406L;
|
||||
|
||||
@ExcelProperty("项目名称")
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目名称不能为空")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "项目名称长度不能超过50字符")
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "项目封面述长度不能超过100字符")
|
||||
@ApiModelProperty("项目封面")
|
||||
private String coverUrl;
|
||||
|
||||
@ExcelProperty("风场名称")
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "风场名称不能为空")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "风场名称长度不能超过50字符")
|
||||
@ApiModelProperty("风场名称")
|
||||
private String farmName;
|
||||
|
||||
@ExcelProperty("风场地址")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "风场名称长度不能超过100字符")
|
||||
@ApiModelProperty("风场地址")
|
||||
private String farmAddress;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "委托单位长度不能超过50字符")
|
||||
@ApiModelProperty("委托单位")
|
||||
private String client;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "委托单位联系人长度不能超过20字符")
|
||||
@ApiModelProperty("委托单位联系人")
|
||||
private String clientContact;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "委托单位联系电话长度不能超过20字符")
|
||||
@ApiModelProperty("委托单位联系电话")
|
||||
private String clientPhone;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "检查单位联系电话长度不能超过20字符")
|
||||
@ApiModelProperty("检查单位")
|
||||
private String inspectionUnit;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "检查单位联系人长度不能超过20字符")
|
||||
@ApiModelProperty("检查单位联系人")
|
||||
private String inspectionContact;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "检查单位联系电话长度不能超过20字符")
|
||||
@ApiModelProperty("检查单位联系电话")
|
||||
private String inspectionPhone;
|
||||
|
||||
@ExcelProperty("项目规模")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "项目规模长度不能超过20字符")
|
||||
@ApiModelProperty("项目规模")
|
||||
private String scale;
|
||||
|
||||
@ExcelProperty("风机型号")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "风机型号不能超过20字符")
|
||||
@ApiModelProperty("风机型号")
|
||||
private String turbineModel;
|
||||
|
||||
@ApiModelProperty("施工人员id")
|
||||
@ApiModelProperty(value = "施工人员id", notes = "多个用英文逗号隔开")
|
||||
private String constructorIds;
|
||||
|
||||
@ApiModelProperty("安全员id")
|
||||
|
@ -70,19 +81,20 @@ public class ProjectReq implements Serializable {
|
|||
@ApiModelProperty("质量员id")
|
||||
private String qualityOfficerId;
|
||||
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目经理id不能为空")
|
||||
@ApiModelProperty("项目经理id")
|
||||
private String projectManagerId;
|
||||
|
||||
@ApiModelProperty("施工组长id")
|
||||
private String constructionTeamLeaderId;
|
||||
|
||||
@ApiModelProperty("技术方案图片,多个用逗号隔开")
|
||||
@ApiModelProperty(value = "技术方案图片", notes = "多项英文逗号隔开")
|
||||
private String technicalImage;
|
||||
|
||||
@ApiModelProperty("技术方案内容")
|
||||
private String technicalContent;
|
||||
|
||||
@ApiModelProperty("安全措施图片,多个用逗号隔开")
|
||||
@ApiModelProperty(value = "安全措施图片", notes = "多项英文逗号隔开")
|
||||
private String safetyImage;
|
||||
|
||||
@ApiModelProperty("安全措施内容")
|
||||
|
@ -92,14 +104,14 @@ public class ProjectReq implements Serializable {
|
|||
private String discloseContent;
|
||||
|
||||
@ApiModelProperty("状态:0待施工,1施工中,2已完工,3已审核,4已验收")
|
||||
private String status;
|
||||
private int status;
|
||||
|
||||
@ApiModelProperty("项目工作类型 可能有多项,逗号分隔")
|
||||
@ApiModelProperty(value = "项目工作类型", notes = "多项英文逗号隔开")
|
||||
private String workType;
|
||||
|
||||
@ApiModelProperty("项目工作岗位 可能有多项,json对象保存")
|
||||
@ApiModelProperty(value = "项目工作岗位", notes = "多项英文逗号隔开,json对象保存")
|
||||
private String job;
|
||||
|
||||
@ApiModelProperty(value = "项目安全风险点", example = "1", notes = "项目安全风险点 可能有多项,逗号分隔")
|
||||
@ApiModelProperty(value = "项目安全风险点", notes = "多项英文逗号隔开")
|
||||
private String safetyRiskPoint;
|
||||
}
|
||||
|
|
|
@ -2,10 +2,13 @@ package com.dite.znpt.domain.vo;
|
|||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
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;
|
||||
|
||||
|
@ -21,25 +24,33 @@ public class TurbineReq implements Serializable {
|
|||
@Serial
|
||||
private static final long serialVersionUID = 115092978850852080L;
|
||||
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目id不能为空")
|
||||
@ApiModelProperty("项目id")
|
||||
private String projectId;
|
||||
|
||||
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "机组名称不能为空")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "机组名称长度不能超过50字符")
|
||||
@ApiModelProperty("机组名称")
|
||||
private String turbineName;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "机组编码长度不能超过20字符")
|
||||
@ApiModelProperty("机组编码")
|
||||
private String turbineCode;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 200, message = "机组描述长度不能超过200字符")
|
||||
@ApiModelProperty("机组描述")
|
||||
private String turbineDesc;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "机组厂商长度不能超过20字符")
|
||||
@ApiModelProperty("机组厂商")
|
||||
private String turbineManufacturer;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "机组型号长度不能超过20字符")
|
||||
@ApiModelProperty("机组型号")
|
||||
private String turbineModel;
|
||||
|
||||
@ApiModelProperty("封面图")
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "机组封面图长度不能超过100字符")
|
||||
@ApiModelProperty("机组封面图")
|
||||
private String turbineCoverUrl;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
|
@ -21,31 +23,43 @@ public class UserReq implements Serializable {
|
|||
@Serial
|
||||
private static final long serialVersionUID = -5491849652107338027L;
|
||||
|
||||
@Pattern(groups = {ValidationGroup.Insert.class},regexp = "^[a-zA-Z0-9_]{4,20}$", message = "只能包含字母、数字或下划线,长度4-20")
|
||||
@ApiModelProperty("账号")
|
||||
private String account;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "头像地址长度不能超过100字符")
|
||||
@ApiModelProperty("头像地址")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty("1正常0禁用")
|
||||
private Integer status;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "姓名长度不能超过20字符")
|
||||
@ApiModelProperty("姓名")
|
||||
private String name;
|
||||
|
||||
@Pattern(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, regexp = "^$|\\d(?:\\d{15}|\\d{17})$", message = "身份证号码格式不正确")
|
||||
@ApiModelProperty("身份证")
|
||||
private String identityCard;
|
||||
|
||||
@ApiModelProperty("性别")
|
||||
private String gender;
|
||||
|
||||
@Pattern(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, regexp ="^$|1\\d{10}$", message = "手机号码格式不正确")
|
||||
@ApiModelProperty("手机号码")
|
||||
private String mobile;
|
||||
|
||||
@Email(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class})
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "邮箱长度不能超过50字符")
|
||||
@ApiModelProperty("邮箱")
|
||||
private String email;
|
||||
|
||||
@Past(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "入职日期必须是过去的日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("入职日期")
|
||||
private LocalDate hiredate;
|
||||
|
||||
@Past(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "出生日期必须是过去的日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty("出生日期")
|
||||
private LocalDate birthdate;
|
||||
|
@ -53,9 +67,11 @@ public class UserReq implements Serializable {
|
|||
@ApiModelProperty("学历")
|
||||
private String education;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "专业长度不能超过20字符")
|
||||
@ApiModelProperty("专业")
|
||||
private String majorField;
|
||||
|
||||
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "工作方向长度不能超过20字符")
|
||||
@ApiModelProperty("工作方向")
|
||||
private String workField;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.util.List;
|
|||
*/
|
||||
@Getter
|
||||
public enum EducationEnum {
|
||||
UNKNOWN("unknown","小学"),
|
||||
PRIMARY_SCHOOL("primary_school","小学"),
|
||||
MIDDLE_SCHOOL("middle_school","初中"),
|
||||
HIGH_SCHOOL(" high_school","高中"),
|
||||
|
|
|
@ -15,25 +15,25 @@ import java.util.List;
|
|||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ProjectStatusEnum {
|
||||
PENDING("PENDING","待施工", 0),
|
||||
IN_PROGRESS("IN_PROGRESS","施工中", 1),
|
||||
COMPLETED("COMPLETED","已完工", 2),
|
||||
AUDITED("AUDITED","已审核", 3),
|
||||
ACCEPTED("ACCEPTED","已验收", 4);
|
||||
private final String code;
|
||||
private final String desc;
|
||||
private final int intValue;
|
||||
PENDING(0, "待施工"),
|
||||
IN_PROGRESS(1, "施工中"),
|
||||
COMPLETED(2, "已完工"),
|
||||
AUDITED(3, "已审核"),
|
||||
ACCEPTED(4, "已验收");
|
||||
|
||||
public static ProjectStatusEnum getByCode(String code){
|
||||
private final int code;
|
||||
private final String desc;
|
||||
|
||||
public static ProjectStatusEnum getByCode(int code){
|
||||
for (ProjectStatusEnum e : ProjectStatusEnum.values() ) {
|
||||
if(e.code.equals(code)){
|
||||
if(e.code == code){
|
||||
return e;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getDescByCode(String code){
|
||||
public static String getDescByCode(int code){
|
||||
ProjectStatusEnum e = getByCode(code);
|
||||
return null == e ? null : e.desc;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public enum ProjectStatusEnum {
|
|||
List<JSONObject> list = new ArrayList<>(ProjectStatusEnum.values().length);
|
||||
for (ProjectStatusEnum e : ProjectStatusEnum.values() ) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.set(e.code, e.desc);
|
||||
jsonObject.set(String.valueOf(e.code), e.desc);
|
||||
list.add(jsonObject);
|
||||
}
|
||||
return list;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.dite.znpt.exception;
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -51,7 +51,7 @@ public interface UserService extends IService<UserEntity> {
|
|||
* @author huise23
|
||||
* @date 2025/04/11 23:17
|
||||
**/
|
||||
void save(UserReq req);
|
||||
String save(UserReq req);
|
||||
|
||||
/**
|
||||
* 功能描述:更新用户信息
|
||||
|
|
|
@ -31,7 +31,7 @@ import java.util.List;
|
|||
@Service
|
||||
public class ImageCollectServiceImpl extends ServiceImpl<ImageCollectMapper, ImageCollectEntity> implements ImageCollectService {
|
||||
|
||||
@Value("${upload.perm-path}")
|
||||
@Value("${upload.perm-path.image}")
|
||||
private String permPath;
|
||||
|
||||
@Resource
|
||||
|
@ -52,7 +52,7 @@ public class ImageCollectServiceImpl extends ServiceImpl<ImageCollectMapper, Ima
|
|||
ImageCollectEntity imageCollect = Converts.INSTANCE.toImageCollectEntity(req);
|
||||
this.save(imageCollect);
|
||||
List<ImageEntity> imageList = Converts.INSTANCE.toImageEntity(req.getImageList());
|
||||
String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(ImageSourceEnum.COLLECT.getCode()).concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH);
|
||||
String path_prefix = permPath.concat(FileUtil.FILE_SEPARATOR).concat(ImageSourceEnum.COLLECT.getCode()).concat(FileUtil.FILE_SEPARATOR).concat(partId).concat(FileUtil.FILE_SEPARATOR);
|
||||
imageList.stream().forEach(image -> {
|
||||
image.setPartId(partId);
|
||||
image.setCollectId(imageCollect.getCollectId());
|
||||
|
|
|
@ -10,7 +10,10 @@ import com.dite.znpt.constant.Message;
|
|||
import com.dite.znpt.domain.entity.ImageEntity;
|
||||
import com.dite.znpt.domain.entity.PartEntity;
|
||||
import com.dite.znpt.domain.vo.*;
|
||||
import com.dite.znpt.enums.*;
|
||||
import com.dite.znpt.enums.ImageSourceEnum;
|
||||
import com.dite.znpt.enums.ImageTypeEnum;
|
||||
import com.dite.znpt.enums.ShootingMethodEnum;
|
||||
import com.dite.znpt.enums.WeatherEnum;
|
||||
import com.dite.znpt.exception.ServiceException;
|
||||
import com.dite.znpt.mapper.ImageMapper;
|
||||
import com.dite.znpt.service.ImageCollectService;
|
||||
|
@ -54,10 +57,10 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, ImageEntity> impl
|
|||
@Resource
|
||||
private PartService partService;
|
||||
|
||||
@Value("${upload.temp-path}")
|
||||
@Value("${upload.temp-path.image}")
|
||||
private String tempPath;
|
||||
|
||||
@Value("${upload.perm-path}")
|
||||
@Value("${upload.perm-path.image}")
|
||||
private String permPath;
|
||||
@Override
|
||||
public List<ImageListResp> list(ImageListReq req) {
|
||||
|
@ -83,8 +86,8 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, ImageEntity> impl
|
|||
Map<String, PartEntity> partIdMap= partService.listByIds(partIds).stream().collect(Collectors.toMap(PartEntity::getPartId, Function.identity()));
|
||||
list.stream().forEach(req -> {
|
||||
if(partIdMap.containsKey(req.getPartId())){
|
||||
String path_prefix = permPath.concat(FileUtil.FILE_SEPARATOR).concat(req.getImageSource()).concat(FileUtil.FILE_SEPARATOR).concat(req.getPartId()).concat(FileUtil.FILE_SEPARATOR);
|
||||
String temp_path_prefix = tempPath.concat(FileUtil.FILE_SEPARATOR).concat(req.getImageSource()).concat(FileUtil.FILE_SEPARATOR).concat(req.getPartId()).concat(FileUtil.FILE_SEPARATOR);
|
||||
String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(req.getImageSource()).concat(StrUtil.BACKSLASH).concat(req.getPartId()).concat(StrUtil.BACKSLASH);
|
||||
String temp_path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(req.getImageSource()).concat(StrUtil.BACKSLASH).concat(req.getPartId()).concat(StrUtil.BACKSLASH);
|
||||
File file = new File(req.getImagePath());
|
||||
if(file.exists() && req.getImagePath().contains(temp_path_prefix)){
|
||||
ImageEntity entity = new ImageEntity();
|
||||
|
@ -123,7 +126,12 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, ImageEntity> impl
|
|||
throw new ServiceException(Message.IMAGE_IS_EMPTY);
|
||||
}
|
||||
List<ImageReq> list = new ArrayList<>(files.length);
|
||||
String path_prefix = tempPath.concat(FileUtil.FILE_SEPARATOR).concat(imageSource).concat(FileUtil.FILE_SEPARATOR).concat(partId).concat(FileUtil.FILE_SEPARATOR);
|
||||
File temCategory = new File(tempPath);
|
||||
if (!temCategory.exists()) {
|
||||
// 创建完整的目录
|
||||
temCategory.mkdirs();
|
||||
}
|
||||
String path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(imageSource).concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH);
|
||||
for (MultipartFile file : files) {
|
||||
if (!file.isEmpty()) {
|
||||
try {
|
||||
|
@ -189,7 +197,7 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, ImageEntity> impl
|
|||
req.setCameraManufacturer(obj.getStr("Make"));
|
||||
req.setCameraModel(obj.getStr("Model"));
|
||||
req.setImageName(obj.getStr("File Name"));
|
||||
req.setImagePath(path);
|
||||
req.setImagePath(StrUtil.removePrefix(path, tempPath));
|
||||
BigDecimal imageSize = new BigDecimal(extractDigit(obj.getStr("File Size"))).divide(new BigDecimal(1024*1024), 4, RoundingMode.HALF_UP);
|
||||
req.setImageSize(imageSize.toString().concat("M"));
|
||||
req.setImageWidth(extractDigit(obj.getStr("Image Width")));
|
||||
|
@ -200,15 +208,19 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, ImageEntity> impl
|
|||
req.setYResolution(extractDigit(obj.getStr("Y Resolution")));
|
||||
req.setResolutionUnits(obj.getStr("Resolution Units"));
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ss");
|
||||
if(StrUtil.isNotBlank(obj.getStr("Date/Time Original"))){
|
||||
req.setShootingTime(LocalDateTime.parse(obj.getStr("Date/Time Original"), formatter));
|
||||
}
|
||||
req.setFocalDistance(extractDigit(obj.getStr("Focal Length")));
|
||||
req.setLatitude(obj.getStr("GPS Latitude"));
|
||||
req.setLongitude(obj.getStr("GPS Longitude"));
|
||||
req.setAltitude(extractDigit(obj.getStr("GPS Altitude")));
|
||||
if(StrUtil.isNotBlank(req.getLatitude()) && StrUtil.isNotBlank(req.getLongitude()) && StrUtil.isNotBlank(req.getAltitude())){
|
||||
String gps = req.getLatitude().concat("°").concat(directionTranslator(obj.getStr("GPS Latitude Ref"))).concat(StrUtil.COMMA)
|
||||
.concat(req.getLongitude()).concat("°").concat(directionTranslator(obj.getStr("GPS Longitude Ref"))).concat(StrUtil.COMMA)
|
||||
.concat("海拔").concat(req.getAltitude()).concat("m");
|
||||
req.setGPS(gps);
|
||||
}
|
||||
return req;
|
||||
}
|
||||
|
||||
|
@ -227,6 +239,9 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, ImageEntity> impl
|
|||
}
|
||||
|
||||
private static String extractDigit(String str) {
|
||||
if(StrUtil.isEmpty(str)){
|
||||
return null;
|
||||
}
|
||||
Pattern pattern = Pattern.compile("\\d+(\\.\\d+)?");
|
||||
Matcher matcher = pattern.matcher(str);
|
||||
if (matcher.find()) {
|
||||
|
|
|
@ -201,7 +201,7 @@ public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity
|
|||
if (turbine == null) {
|
||||
return;
|
||||
}
|
||||
if (turbine.getStatus() == ProjectStatusEnum.AUDITED.getIntValue()) {
|
||||
if (turbine.getStatus() == ProjectStatusEnum.AUDITED.getCode()) {
|
||||
return;
|
||||
}
|
||||
List<TurbineStatusResp> turbineStatusList = jobService.calCrewStatus(ListUtil.of(turbineId));
|
||||
|
@ -223,19 +223,19 @@ public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity
|
|||
&& status3.contains(turbineStatusVo.getAntiThunderWorkStatus())
|
||||
&& status3.contains(turbineStatusVo.getSummaryWorkStatus())) {
|
||||
// 全部提交已完工
|
||||
turbine.setStatus(ProjectStatusEnum.COMPLETED.getIntValue());
|
||||
turbine.setStatus(ProjectStatusEnum.COMPLETED.getCode());
|
||||
} else if (status4.contains(turbineStatusVo.getInWorkStatus())
|
||||
&& status4.contains(turbineStatusVo.getOutWorkStatus())
|
||||
&& status4.contains(turbineStatusVo.getAntiThunderWorkStatus())
|
||||
&& status4.contains(turbineStatusVo.getSummaryWorkStatus())) {
|
||||
// 全部审批已审批
|
||||
turbine.setStatus(ProjectStatusEnum.AUDITED.getIntValue());
|
||||
turbine.setStatus(ProjectStatusEnum.AUDITED.getCode());
|
||||
} else if (status2.contains(turbineStatusVo.getInWorkStatus())
|
||||
|| status2.contains(turbineStatusVo.getOutWorkStatus())
|
||||
|| status2.contains(turbineStatusVo.getAntiThunderWorkStatus())
|
||||
|| status2.contains(turbineStatusVo.getSummaryWorkStatus())) {
|
||||
// 有一个开始则开始
|
||||
turbine.setStatus(ProjectStatusEnum.IN_PROGRESS.getIntValue());
|
||||
turbine.setStatus(ProjectStatusEnum.IN_PROGRESS.getCode());
|
||||
}
|
||||
this.updateById(turbine);
|
||||
// 更新项目状态
|
||||
|
@ -255,19 +255,19 @@ public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity
|
|||
List<Integer> statusList = this.lambdaQuery().eq(TurbineEntity::getProjectId, projectId).list()
|
||||
.stream().map(TurbineEntity::getStatus).toList();
|
||||
// 有施工中,则是施工中
|
||||
if (statusList.contains(ProjectStatusEnum.IN_PROGRESS.getIntValue())) {
|
||||
status = ProjectStatusEnum.IN_PROGRESS.getIntValue();
|
||||
if (statusList.contains(ProjectStatusEnum.IN_PROGRESS.getCode())) {
|
||||
status = ProjectStatusEnum.IN_PROGRESS.getCode();
|
||||
}
|
||||
// 如果机组列表没有状态为 待施工、施工中 的则项目 完工
|
||||
if (!statusList.contains(ProjectStatusEnum.PENDING.getIntValue()) &&
|
||||
!statusList.contains(ProjectStatusEnum.IN_PROGRESS.getIntValue())) {
|
||||
status = ProjectStatusEnum.COMPLETED.getIntValue();
|
||||
if (!statusList.contains(ProjectStatusEnum.PENDING.getCode()) &&
|
||||
!statusList.contains(ProjectStatusEnum.IN_PROGRESS.getCode())) {
|
||||
status = ProjectStatusEnum.COMPLETED.getCode();
|
||||
// 如果机组列表没有状态为 待施工、施工中、已完工 的则项目 已审核
|
||||
if (!statusList.contains(ProjectStatusEnum.COMPLETED.getIntValue())) {
|
||||
status = ProjectStatusEnum.AUDITED.getIntValue();
|
||||
if (!statusList.contains(ProjectStatusEnum.COMPLETED.getCode())) {
|
||||
status = ProjectStatusEnum.AUDITED.getCode();
|
||||
// 如果机组列表没有状态为 待施工、施工中、已完工、已审核 的则项目 已验收
|
||||
if (!statusList.contains(ProjectStatusEnum.AUDITED.getIntValue())) {
|
||||
status = ProjectStatusEnum.ACCEPTED.getIntValue();
|
||||
if (!statusList.contains(ProjectStatusEnum.AUDITED.getCode())) {
|
||||
status = ProjectStatusEnum.ACCEPTED.getCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
package com.dite.znpt.service.impl;
|
||||
|
||||
import cn.dev33.satoken.secure.SaBase64Util;
|
||||
import cn.dev33.satoken.secure.SaSecureUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.constant.Message;
|
||||
import com.dite.znpt.converts.Converts;
|
||||
import com.dite.znpt.domain.entity.UserEntity;
|
||||
|
@ -11,6 +16,8 @@ import com.dite.znpt.enums.EducationEnum;
|
|||
import com.dite.znpt.exception.ServiceException;
|
||||
import com.dite.znpt.service.UserService;
|
||||
import com.dite.znpt.mapper.UserMapper;
|
||||
import com.dite.znpt.util.PasswordUtil;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.dite.znpt.util.PageUtil;
|
||||
|
@ -27,6 +34,12 @@ import java.util.List;
|
|||
@RequiredArgsConstructor
|
||||
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {
|
||||
|
||||
@Value("${password.default-value:Ai3m@123}")
|
||||
private String defaultPassword;
|
||||
|
||||
@Value("${password.enable-default:true}")
|
||||
private Boolean enableDefaultPassword;
|
||||
|
||||
/**
|
||||
* 功能描述:分页查询用户信息列表
|
||||
*
|
||||
|
@ -82,9 +95,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> impleme
|
|||
**/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void save(UserReq req) {
|
||||
public String save(UserReq req) {
|
||||
UserEntity entity = Converts.INSTANCE.toUserEntity(req);
|
||||
String salt = RandomUtil.randomString(req.getAccount(), 4);
|
||||
entity.setSalt(salt);
|
||||
String password = enableDefaultPassword ? defaultPassword : PasswordUtil.generatePassword();
|
||||
entity.setPassword(SaSecureUtil.md5(req.getAccount().concat(password).concat(salt)));
|
||||
this.save(entity);
|
||||
return SaBase64Util.encode(password);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -103,6 +121,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> impleme
|
|||
}
|
||||
UserEntity entity = Converts.INSTANCE.toUserEntity(req);
|
||||
entity.setUserId(userId);
|
||||
entity.setAccount(null);
|
||||
this.updateById(entity);
|
||||
}
|
||||
|
||||
|
@ -116,10 +135,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> impleme
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void deleteById(String userId) {
|
||||
if(null == this.getById(userId)){
|
||||
UserEntity entity = this.getById(userId);
|
||||
if(null == entity){
|
||||
throw new ServiceException(Message.USER_ID_NOT_EXIST);
|
||||
}
|
||||
this.removeById(userId);
|
||||
entity.setDelFlag(Constants.DEL_FLAG_1);
|
||||
this.updateById(entity);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3,6 +3,12 @@ package com.dite.znpt.util;
|
|||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class PasswordUtil {
|
||||
private static final PasswordEncoder encoder = new BCryptPasswordEncoder();
|
||||
|
||||
|
@ -13,4 +19,48 @@ public class PasswordUtil {
|
|||
public static boolean matches(String rawPassword, String encodedPassword) {
|
||||
return encoder.matches(rawPassword, encodedPassword);
|
||||
}
|
||||
|
||||
// 字符集定义
|
||||
private static final String UPPER_CASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
private static final String LOWER_CASE = "abcdefghijklmnopqrstuvwxyz";
|
||||
private static final String SPECIAL_CHARACTERS = "!@#$%^&*()-_=+[]{}|;:'\",.<>/?";
|
||||
private static final String DIGITS = "0123456789";
|
||||
|
||||
// 安全随机数生成器
|
||||
private static final Random RANDOM = new SecureRandom();
|
||||
|
||||
/**
|
||||
* 生成随机密码
|
||||
* @return 符合要求的随机密码
|
||||
*/
|
||||
public static String generatePassword() {
|
||||
// 确保密码包含至少一个大写字母、一个小写字母和一个特殊字符
|
||||
List<Character> passwordChars = new ArrayList<>();
|
||||
|
||||
// 1. 添加至少一个大写字母
|
||||
passwordChars.add(UPPER_CASE.charAt(RANDOM.nextInt(UPPER_CASE.length())));
|
||||
|
||||
// 2. 添加至少一个小写字母
|
||||
passwordChars.add(LOWER_CASE.charAt(RANDOM.nextInt(LOWER_CASE.length())));
|
||||
|
||||
// 3. 添加至少一个特殊字符
|
||||
passwordChars.add(SPECIAL_CHARACTERS.charAt(RANDOM.nextInt(SPECIAL_CHARACTERS.length())));
|
||||
|
||||
// 4. 生成剩余字符(8位密码已添加3位,还需5位)
|
||||
String allChars = UPPER_CASE + LOWER_CASE + SPECIAL_CHARACTERS + DIGITS;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
passwordChars.add(allChars.charAt(RANDOM.nextInt(allChars.length())));
|
||||
}
|
||||
|
||||
// 5. 打乱字符顺序
|
||||
Collections.shuffle(passwordChars, RANDOM);
|
||||
|
||||
// 6. 转换为字符串
|
||||
StringBuilder password = new StringBuilder();
|
||||
for (Character c : passwordChars) {
|
||||
password.append(c);
|
||||
}
|
||||
|
||||
return password.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package com.dite.znpt.util;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/5/19/周一 15:09
|
||||
* @description
|
||||
*/
|
||||
|
||||
public interface ValidationGroup {
|
||||
interface Insert {} // 增
|
||||
interface Update {} // 改
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.CombinedDictListReq;
|
||||
import com.dite.znpt.domain.vo.CombinedDictResp;
|
||||
import com.dite.znpt.domain.entity.CombinedDictEntity;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.DefectListReq;
|
||||
import com.dite.znpt.domain.vo.DefectReq;
|
||||
import com.dite.znpt.domain.vo.DefectResp;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.FileInfoListReq;
|
||||
import com.dite.znpt.domain.vo.FileInfoResp;
|
||||
import com.dite.znpt.domain.entity.FileInfoEntity;
|
||||
|
|
|
@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/5/19/周一 14:32
|
||||
* @description
|
||||
*/
|
||||
@Api(tags = "登录")
|
||||
@RestController
|
||||
public class LoginController {
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.PartListReq;
|
||||
import com.dite.znpt.domain.vo.PartListResp;
|
||||
import com.dite.znpt.domain.vo.PartReq;
|
||||
|
@ -10,12 +10,14 @@ import com.dite.znpt.domain.entity.PartEntity;
|
|||
import com.dite.znpt.service.PartService;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -32,39 +34,39 @@ public class PartController {
|
|||
@Resource
|
||||
private PartService partService;
|
||||
|
||||
@ApiOperation(value = "分页获取部件列表", httpMethod = "GET")
|
||||
@ApiOperation(value = "分页查询部件信息列表", httpMethod = "GET")
|
||||
@GetMapping("/page")
|
||||
public PageResult<PartListResp> page(PartListReq partReq) {
|
||||
return PageResult.ok(partService.page(partReq));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取部件列表", httpMethod = "GET")
|
||||
@ApiOperation(value = "查询部件信息列表", httpMethod = "GET")
|
||||
@GetMapping("/list")
|
||||
public Result<List<PartListResp>> list(PartListReq partReq) {
|
||||
return Result.ok(partService.list(partReq));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据Id获取详细信息", httpMethod = "GET")
|
||||
@ApiOperation(value = "查询部件信息详情", httpMethod = "GET")
|
||||
@GetMapping("/detail/{partId}")
|
||||
public Result<PartResp> detail(@PathVariable String partId) {
|
||||
return Result.ok(partService.detail(partId));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "新增", httpMethod = "POST")
|
||||
@ApiOperation(value = "新增部件信息", httpMethod = "POST")
|
||||
@PostMapping
|
||||
public Result<Object> add(@RequestBody PartReq req) {
|
||||
public Result<Object> add(@Validated(ValidationGroup.Insert.class) @RequestBody PartReq req) {
|
||||
partService.save(req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", httpMethod = "PUT")
|
||||
@ApiOperation(value = "修改部件信息", httpMethod = "PUT")
|
||||
@PutMapping("/{partId}")
|
||||
public Result<Object> edit(@PathVariable String partId, @RequestBody PartReq req) {
|
||||
public Result<Object> edit(@Validated(ValidationGroup.Update.class) @PathVariable String partId, @RequestBody PartReq req) {
|
||||
partService.update(partId, req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", httpMethod = "DELETE")
|
||||
@ApiOperation(value = "删除部件信息", httpMethod = "DELETE")
|
||||
@DeleteMapping("/{partId}")
|
||||
public Result<Object> remove(@PathVariable String partId) {
|
||||
partService.deleteById(partId);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.ProjectListReq;
|
||||
import com.dite.znpt.domain.vo.ProjectListResp;
|
||||
import com.dite.znpt.domain.vo.ProjectReq;
|
||||
|
@ -10,12 +10,14 @@ import com.dite.znpt.domain.entity.ProjectEntity;
|
|||
import com.dite.znpt.service.ProjectService;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -52,14 +54,14 @@ public class ProjectController {
|
|||
|
||||
@ApiOperation(value = "新增项目信息", httpMethod = "POST")
|
||||
@PostMapping
|
||||
public Result add(@RequestBody ProjectReq req) {
|
||||
public Result add(@Validated(ValidationGroup.Insert.class) @RequestBody ProjectReq req) {
|
||||
projectService.save(req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改项目信息", httpMethod = "PUT")
|
||||
@PutMapping("/{projectId}")
|
||||
public Result<Object> edit(@PathVariable String projectId, @RequestBody ProjectReq req) {
|
||||
public Result<Object> edit(@PathVariable String projectId, @Validated(ValidationGroup.Update.class) @RequestBody ProjectReq req) {
|
||||
projectService.update(projectId, req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.TConstructionListReq;
|
||||
import com.dite.znpt.domain.vo.TConstructionResp;
|
||||
import com.dite.znpt.domain.entity.TConstructionEntity;
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.*;
|
||||
import com.dite.znpt.domain.entity.TurbineEntity;
|
||||
import com.dite.znpt.service.TurbineService;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -61,14 +63,14 @@ public class TurbineController {
|
|||
|
||||
@ApiOperation(value = "新增机组", httpMethod = "POST")
|
||||
@PostMapping
|
||||
public Result<Object> add(@RequestBody TurbineReq req) {
|
||||
public Result<Object> add(@Validated(ValidationGroup.Insert.class) @RequestBody TurbineReq req) {
|
||||
turbineService.save(req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改机组", httpMethod = "PUT")
|
||||
@PutMapping("/{turbineId}")
|
||||
public Result edit(@PathVariable String turbineId, @RequestBody TurbineReq req) {
|
||||
public Result edit(@PathVariable String turbineId, @Validated(ValidationGroup.Insert.class) @RequestBody TurbineReq req) {
|
||||
turbineService.update(turbineId, req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
|
|
@ -8,15 +8,18 @@ import com.dite.znpt.domain.entity.UserEntity;
|
|||
import com.dite.znpt.service.UserService;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -50,14 +53,13 @@ public class UserController {
|
|||
|
||||
@ApiOperation(value = "新增用户信息", httpMethod = "POST")
|
||||
@PostMapping
|
||||
public Result<Object> add(@RequestBody UserReq req) {
|
||||
userService.save(req);
|
||||
return Result.ok();
|
||||
public Result<Object> add(@Validated(ValidationGroup.Insert.class) @RequestBody UserReq req) {
|
||||
return Result.ok(userService.save(req));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改用户信息", httpMethod = "PUT")
|
||||
@PutMapping("/{userId}")
|
||||
public Result<Object> edit(@PathVariable String userId, @RequestBody UserReq req) {
|
||||
public Result<Object> edit(@PathVariable String userId, @Validated(ValidationGroup.Update.class) @RequestBody UserReq req) {
|
||||
userService.update(userId, req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
|
||||
import com.dite.znpt.domain.Constants;
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.vo.WeatherTypeListReq;
|
||||
import com.dite.znpt.domain.vo.WeatherTypeResp;
|
||||
import com.dite.znpt.domain.entity.WeatherTypeEntity;
|
||||
|
|
Loading…
Reference in New Issue