维修建议库接口完成
This commit is contained in:
parent
b1bb6dac97
commit
4f23f68a26
|
@ -64,4 +64,6 @@ public class Message implements Serializable {
|
||||||
public static final String WORK_SHIFT_NOT_EXIST = "班次不存在";
|
public static final String WORK_SHIFT_NOT_EXIST = "班次不存在";
|
||||||
public static final String WORK_SHIFT_IS_NOT_UNPUBLISH = "班次的状态不是未发布";
|
public static final String WORK_SHIFT_IS_NOT_UNPUBLISH = "班次的状态不是未发布";
|
||||||
public static final String IMAGE_AUTO_MARK_ERROR = "自动标注出错:";
|
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 = "存在缺陷级别为[{}]缺陷类型为[{}]的维修建议";
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,5 +97,11 @@ public interface Converts {
|
||||||
WorkShiftResp toWorkShiftResp(WorkShiftEntity entity);
|
WorkShiftResp toWorkShiftResp(WorkShiftEntity entity);
|
||||||
|
|
||||||
WorkShiftEntity toWorkShiftEntity(WorkShiftReq req);
|
WorkShiftEntity toWorkShiftEntity(WorkShiftReq req);
|
||||||
|
|
||||||
|
List<MaintainSuggestionResp> toMaintainSuggestionResp(List<MaintainSuggestionEntity> list);
|
||||||
|
|
||||||
|
MaintainSuggestionResp toMaintainSuggestionResp(MaintainSuggestionEntity entity);
|
||||||
|
|
||||||
|
MaintainSuggestionEntity toMaintainSuggestionEntity(MaintainSuggestionReq req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.dite.znpt.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: gaoxiong
|
||||||
|
* @Date: 2025/7/7 22:25
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("维修建议请求实体")
|
||||||
|
public class MaintainSuggestionReq implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 6390137746113715095L;
|
||||||
|
|
||||||
|
@NotBlank(message = "建议内容不能为空")
|
||||||
|
@Size(max = 200, message = "建议内容不能超过200个字符")
|
||||||
|
@ApiModelProperty("建议内容")
|
||||||
|
private String suggestionContent;
|
||||||
|
|
||||||
|
@NotBlank(message = "缺陷类型不能为空")
|
||||||
|
@ApiModelProperty("缺陷类型,枚举:DefectTypeEnum")
|
||||||
|
private String defectType;
|
||||||
|
|
||||||
|
@NotBlank(message = "缺陷级别不能为空")
|
||||||
|
@ApiModelProperty("缺陷级别,枚举:DefectLevelEnum")
|
||||||
|
private String defectLevel;
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.dite.znpt.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: gaoxiong
|
||||||
|
* @Date: 2025/7/7 22:26
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel("维修建议响应实体")
|
||||||
|
public class MaintainSuggestionResp implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -5835303002016693551L;
|
||||||
|
|
||||||
|
@ApiModelProperty("建议id")
|
||||||
|
private String suggestionId;
|
||||||
|
|
||||||
|
@ApiModelProperty("建议内容")
|
||||||
|
private String suggestionContent;
|
||||||
|
|
||||||
|
@ApiModelProperty("缺陷类型,枚举:DefectTypeEnum")
|
||||||
|
private String defectType;
|
||||||
|
|
||||||
|
@ApiModelProperty("缺陷类型描述")
|
||||||
|
private String defectTypeLabel;
|
||||||
|
|
||||||
|
@ApiModelProperty("缺陷级别,枚举:DefectLevelEnum")
|
||||||
|
private String defectLevel;
|
||||||
|
|
||||||
|
@ApiModelProperty("缺陷级别描述")
|
||||||
|
private String defectLevelLabel;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.dite.znpt.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.dite.znpt.domain.entity.MaintainSuggestionEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: gaoxiong
|
||||||
|
* @Date: 2025/7/7 22:22
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
public interface MaintainSuggestionMapper extends BaseMapper<MaintainSuggestionEntity> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.dite.znpt.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.dite.znpt.domain.entity.MaintainSuggestionEntity;
|
||||||
|
import com.dite.znpt.domain.vo.MaintainSuggestionReq;
|
||||||
|
import com.dite.znpt.domain.vo.MaintainSuggestionResp;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: gaoxiong
|
||||||
|
* @Date: 2025/7/7 22:24
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
public interface MaintainSuggestionService extends IService<MaintainSuggestionEntity> {
|
||||||
|
|
||||||
|
List<MaintainSuggestionResp> page(String defectLevel, String defectType);
|
||||||
|
List<MaintainSuggestionResp> list(String defectLevel, String defectType);
|
||||||
|
MaintainSuggestionResp detail(String suggestionId);
|
||||||
|
void save(MaintainSuggestionReq req);
|
||||||
|
void update(String suggestionId, MaintainSuggestionReq req);
|
||||||
|
void deleteById(String suggestionId);
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
package com.dite.znpt.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.dite.znpt.constant.Message;
|
||||||
|
import com.dite.znpt.converts.Converts;
|
||||||
|
import com.dite.znpt.domain.entity.MaintainSuggestionEntity;
|
||||||
|
import com.dite.znpt.domain.vo.MaintainSuggestionReq;
|
||||||
|
import com.dite.znpt.domain.vo.MaintainSuggestionResp;
|
||||||
|
import com.dite.znpt.enums.DefectLevelEnum;
|
||||||
|
import com.dite.znpt.enums.DefectTypeEnum;
|
||||||
|
import com.dite.znpt.exception.ServiceException;
|
||||||
|
import com.dite.znpt.mapper.MaintainSuggestionMapper;
|
||||||
|
import com.dite.znpt.service.MaintainSuggestionService;
|
||||||
|
import com.dite.znpt.util.PageUtil;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: gaoxiong
|
||||||
|
* @Date: 2025/7/7 22:25
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class MaintainSuggestionServiceImpl extends ServiceImpl<MaintainSuggestionMapper, MaintainSuggestionEntity> implements MaintainSuggestionService {
|
||||||
|
@Override
|
||||||
|
public List<MaintainSuggestionResp> page(String defectLevel, String defectType) {
|
||||||
|
PageUtil.startPage();
|
||||||
|
return this.list(defectLevel, defectType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MaintainSuggestionResp> list(String defectLevel, String defectType) {
|
||||||
|
List<MaintainSuggestionResp> result = Converts.INSTANCE.toMaintainSuggestionResp(
|
||||||
|
this.list(Wrappers.lambdaQuery(MaintainSuggestionEntity.class)
|
||||||
|
.eq(StrUtil.isNotEmpty(defectLevel), MaintainSuggestionEntity::getDefectLevel, defectLevel)
|
||||||
|
.eq(StrUtil.isNotEmpty(defectType), MaintainSuggestionEntity::getDefectType, defectType)
|
||||||
|
));
|
||||||
|
result.forEach(resp -> {
|
||||||
|
resp.setDefectLevelLabel(DefectLevelEnum.getDescByCode(resp.getDefectLevel()));
|
||||||
|
resp.setDefectTypeLabel(DefectTypeEnum.getDescByCode(resp.getDefectType()));
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaintainSuggestionResp detail(String suggestionId) {
|
||||||
|
MaintainSuggestionResp result = Converts.INSTANCE.toMaintainSuggestionResp(this.getById(suggestionId));
|
||||||
|
result.setDefectLevelLabel(DefectLevelEnum.getDescByCode(result.getDefectLevel()));
|
||||||
|
result.setDefectTypeLabel(DefectTypeEnum.getDescByCode(result.getDefectType()));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public void save(MaintainSuggestionReq req) {
|
||||||
|
if(!validDefectLevelAndType(req.getDefectLevel(), req.getDefectType())){
|
||||||
|
throw new ServiceException(StrUtil.format(Message.SUGGESTION_LEVEL_TYPE_FORBID_REPEAT, req.getDefectLevel(), req.getDefectType()));
|
||||||
|
}
|
||||||
|
this.save(Converts.INSTANCE.toMaintainSuggestionEntity(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public void update(String suggestionId, MaintainSuggestionReq req) {
|
||||||
|
MaintainSuggestionEntity maintainSuggestion = this.getById(suggestionId);
|
||||||
|
if(null == maintainSuggestion){
|
||||||
|
throw new ServiceException(Message.SUGGESTION_ID_IS_NOT_EXIST);
|
||||||
|
}
|
||||||
|
if(!req.getDefectLevel().equals(maintainSuggestion.getDefectLevel()) || !req.getDefectType().equals(maintainSuggestion.getDefectType())){
|
||||||
|
if(!validDefectLevelAndType(req.getDefectLevel(), req.getDefectType())){
|
||||||
|
throw new ServiceException(StrUtil.format(Message.SUGGESTION_LEVEL_TYPE_FORBID_REPEAT, req.getDefectLevel(), req.getDefectType()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MaintainSuggestionEntity entity = Converts.INSTANCE.toMaintainSuggestionEntity(req);
|
||||||
|
entity.setSuggestionId(suggestionId);
|
||||||
|
this.updateById(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Boolean validDefectLevelAndType(String defectLevel, String defectType){
|
||||||
|
return this.list(
|
||||||
|
Wrappers.lambdaQuery(MaintainSuggestionEntity.class)
|
||||||
|
.eq(MaintainSuggestionEntity::getDefectLevel, defectLevel)
|
||||||
|
.eq(MaintainSuggestionEntity::getDefectType, defectType)
|
||||||
|
).size() == 0 ;
|
||||||
|
|
||||||
|
};
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public void deleteById(String suggestionId) {
|
||||||
|
if(null == this.getById(suggestionId)){
|
||||||
|
throw new ServiceException(Message.SUGGESTION_ID_IS_NOT_EXIST);
|
||||||
|
}
|
||||||
|
this.removeById(suggestionId);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.dite.znpt.mapper.MaintainSuggestionMapper">
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,67 @@
|
||||||
|
package com.dite.znpt.web.controller;
|
||||||
|
|
||||||
|
import com.dite.znpt.domain.PageResult;
|
||||||
|
import com.dite.znpt.domain.Result;
|
||||||
|
import com.dite.znpt.domain.vo.MaintainSuggestionReq;
|
||||||
|
import com.dite.znpt.domain.vo.MaintainSuggestionResp;
|
||||||
|
import com.dite.znpt.service.MaintainSuggestionService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: gaoxiong
|
||||||
|
* @Date: 2025/7/7 22:31
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Api(tags = "维修建议库")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/maintain_suggestion")
|
||||||
|
public class MaintainSuggestionController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MaintainSuggestionService maintainSuggestionService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "分页查询维修建议列表", httpMethod = "GET")
|
||||||
|
@GetMapping("/page")
|
||||||
|
public PageResult<MaintainSuggestionResp> page(@RequestParam(required = false) String defectLevel, @RequestParam(required = false) String defectType){
|
||||||
|
return PageResult.ok(maintainSuggestionService.page(defectLevel, defectType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询维修建议列表", httpMethod = "GET")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public Result<List<MaintainSuggestionResp>> list(@RequestParam(required = false) String defectLevel, @RequestParam(required = false) String defectType){
|
||||||
|
return Result.ok(maintainSuggestionService.list(defectLevel, defectType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询维修建议详情", httpMethod = "GET")
|
||||||
|
@GetMapping("/detail/{suggestionId}")
|
||||||
|
public Result<MaintainSuggestionResp> detail(@PathVariable String suggestionId){
|
||||||
|
return Result.ok(maintainSuggestionService.detail(suggestionId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "新增维修建议", httpMethod = "POST")
|
||||||
|
@PostMapping
|
||||||
|
public Result<?> add(@Validated @RequestBody MaintainSuggestionReq req){
|
||||||
|
maintainSuggestionService.save(req);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "修改维修建议", httpMethod = "PUT")
|
||||||
|
@PutMapping
|
||||||
|
public Result<?> edit(@PathVariable String suggestionId, @Validated @RequestBody MaintainSuggestionReq req){
|
||||||
|
maintainSuggestionService.update(suggestionId, req);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除维修建议", httpMethod = "DELETE")
|
||||||
|
@DeleteMapping("/{suggestionId}")
|
||||||
|
public Result<?> remove(@PathVariable String suggestionId){
|
||||||
|
maintainSuggestionService.deleteById(suggestionId);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue