维修建议库接口完成
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_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 = "存在缺陷级别为[{}]缺陷类型为[{}]的维修建议";
|
||||
}
|
||||
|
|
|
@ -97,5 +97,11 @@ public interface Converts {
|
|||
WorkShiftResp toWorkShiftResp(WorkShiftEntity entity);
|
||||
|
||||
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