feat: 新增混凝土比例相关接口
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
package mjkf.xinke.main.modular.ratioconcrete.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import mjkf.xinke.common.annotation.CommonLog;
|
||||
import mjkf.xinke.common.pojo.CommonResult;
|
||||
import mjkf.xinke.common.pojo.CommonValidList;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.entity.RatioConcrete;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcreteAddParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcreteEditParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcreteIdParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcretePageParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.service.RatioConcreteService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
@Api(tags = "混凝土比例控制器")
|
||||
@ApiSupport(author = "SNOWY_TEAM", order = 1)
|
||||
@RestController
|
||||
@Validated
|
||||
public class RatioConcreteController {
|
||||
|
||||
@Resource
|
||||
private RatioConcreteService ratioConcreteService;
|
||||
|
||||
@ApiOperationSupport(order = 1)
|
||||
@ApiOperation("获取混凝土比例分页")
|
||||
@SaCheckPermission("/main/ratioconcrete/page")
|
||||
@GetMapping("/main/ratioconcrete/page")
|
||||
public CommonResult<Page<RatioConcrete>> page(RatioConcretePageParam ratioConcretePageParam) {
|
||||
return CommonResult.data(ratioConcreteService.page(ratioConcretePageParam));
|
||||
}
|
||||
|
||||
@ApiOperationSupport(order = 2)
|
||||
@ApiOperation("添加混凝土比例")
|
||||
@CommonLog("添加混凝土比例")
|
||||
@SaCheckPermission("/main/ratioconcrete/add")
|
||||
@PostMapping("/main/ratioconcrete/add")
|
||||
public CommonResult<String> add(@RequestBody @Valid RatioConcreteAddParam ratioConcreteAddParam) {
|
||||
ratioConcreteService.add(ratioConcreteAddParam);
|
||||
return CommonResult.ok();
|
||||
}
|
||||
|
||||
@ApiOperationSupport(order = 3)
|
||||
@ApiOperation("编辑混凝土比例")
|
||||
@CommonLog("编辑混凝土比例")
|
||||
@SaCheckPermission("/main/ratioconcrete/edit")
|
||||
@PostMapping("/main/ratioconcrete/edit")
|
||||
public CommonResult<String> edit(@RequestBody @Valid RatioConcreteEditParam ratioConcreteEditParam) {
|
||||
ratioConcreteService.edit(ratioConcreteEditParam);
|
||||
return CommonResult.ok();
|
||||
}
|
||||
|
||||
@ApiOperationSupport(order = 4)
|
||||
@ApiOperation("删除混凝土比例")
|
||||
@CommonLog("删除混凝土比例")
|
||||
@SaCheckPermission("/main/ratioconcrete/delete")
|
||||
@PostMapping("/main/ratioconcrete/delete")
|
||||
public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
|
||||
CommonValidList<RatioConcreteIdParam> ratioConcreteIdParamList) {
|
||||
ratioConcreteService.delete(ratioConcreteIdParamList);
|
||||
return CommonResult.ok();
|
||||
}
|
||||
|
||||
@ApiOperationSupport(order = 5)
|
||||
@ApiOperation("获取混凝土比例详情")
|
||||
@SaCheckPermission("/main/ratioconcrete/detail")
|
||||
@GetMapping("/main/ratioconcrete/detail")
|
||||
public CommonResult<RatioConcrete> detail(@Valid RatioConcreteIdParam ratioConcreteIdParam) {
|
||||
return CommonResult.data(ratioConcreteService.detail(ratioConcreteIdParam));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 混凝土比例实体
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("ratio_concrete")
|
||||
public class RatioConcrete {
|
||||
|
||||
/** id */
|
||||
@TableId
|
||||
@ApiModelProperty(value = "id", position = 1)
|
||||
private String id;
|
||||
|
||||
/** 名称 */
|
||||
@ApiModelProperty(value = "名称", position = 2)
|
||||
private String name;
|
||||
|
||||
/** 粒径 */
|
||||
@ApiModelProperty(value = "粒径", position = 3)
|
||||
private String rockSize;
|
||||
|
||||
/** 混凝土强度等级 */
|
||||
@ApiModelProperty(value = "混凝土强度等级", position = 4)
|
||||
private String concreteStrength;
|
||||
|
||||
/** 水泥强度等级 */
|
||||
@ApiModelProperty(value = "水泥强度等级", position = 5)
|
||||
private String cementStrength;
|
||||
|
||||
/** 水泥 */
|
||||
@ApiModelProperty(value = "水泥", position = 6)
|
||||
private String ratioCement;
|
||||
|
||||
/** 中粗砂 */
|
||||
@ApiModelProperty(value = "中粗砂", position = 7)
|
||||
private String ratioSand;
|
||||
|
||||
/** 碎砾石 */
|
||||
@ApiModelProperty(value = "碎砾石", position = 8)
|
||||
private String ratioRock;
|
||||
|
||||
/** 片石 */
|
||||
@ApiModelProperty(value = "片石", position = 9)
|
||||
private String ratioRubble;
|
||||
|
||||
/** 租户id */
|
||||
@ApiModelProperty(value = "租户id", position = 10)
|
||||
private String tenantId;
|
||||
|
||||
/** 删除标志 */
|
||||
@ApiModelProperty(value = "删除标志", position = 11)
|
||||
@TableLogic
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String deleteFlag;
|
||||
|
||||
/** 创建时间 */
|
||||
@ApiModelProperty(value = "创建时间", position = 12)
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
/** 创建用户 */
|
||||
@ApiModelProperty(value = "创建用户", position = 13)
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String createUser;
|
||||
|
||||
/** 更新时间 */
|
||||
@ApiModelProperty(value = "更新时间", position = 14)
|
||||
@TableField(fill = FieldFill.UPDATE)
|
||||
private Date updateTime;
|
||||
|
||||
/** 更新人 */
|
||||
@ApiModelProperty(value = "更新人", position = 15)
|
||||
@TableField(fill = FieldFill.UPDATE)
|
||||
private String updateUser;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 混凝土比例枚举
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
@Getter
|
||||
public enum RatioConcreteEnum {
|
||||
|
||||
/** 测试 */
|
||||
TEST("TEST");
|
||||
|
||||
private final String value;
|
||||
|
||||
RatioConcreteEnum(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.entity.RatioConcrete;
|
||||
|
||||
/**
|
||||
* 混凝土比例Mapper接口
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
public interface RatioConcreteMapper extends BaseMapper<RatioConcrete> {
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="mjkf.xinke.main.modular.ratioconcrete.mapper.RatioConcreteMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 混凝土比例添加参数
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
@Getter
|
||||
@Setter
|
||||
public class RatioConcreteAddParam {
|
||||
|
||||
/** 名称 */
|
||||
@ApiModelProperty(value = "名称", position = 2)
|
||||
private String name;
|
||||
|
||||
/** 粒径 */
|
||||
@ApiModelProperty(value = "粒径", position = 3)
|
||||
private String rockSize;
|
||||
|
||||
/** 混凝土强度等级 */
|
||||
@ApiModelProperty(value = "混凝土强度等级", position = 4)
|
||||
private String concreteStrength;
|
||||
|
||||
/** 水泥强度等级 */
|
||||
@ApiModelProperty(value = "水泥强度等级", position = 5)
|
||||
private String cementStrength;
|
||||
|
||||
/** 水泥 */
|
||||
@ApiModelProperty(value = "水泥", position = 6)
|
||||
private String ratioCement;
|
||||
|
||||
/** 中粗砂 */
|
||||
@ApiModelProperty(value = "中粗砂", position = 7)
|
||||
private String ratioSand;
|
||||
|
||||
/** 碎砾石 */
|
||||
@ApiModelProperty(value = "碎砾石", position = 8)
|
||||
private String ratioRock;
|
||||
|
||||
/** 片石 */
|
||||
@ApiModelProperty(value = "片石", position = 9)
|
||||
private String ratioRubble;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 混凝土比例编辑参数
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
@Getter
|
||||
@Setter
|
||||
public class RatioConcreteEditParam {
|
||||
|
||||
/** id */
|
||||
@ApiModelProperty(value = "id", required = true, position = 1)
|
||||
@NotBlank(message = "id不能为空")
|
||||
private String id;
|
||||
|
||||
/** 名称 */
|
||||
@ApiModelProperty(value = "名称", position = 2)
|
||||
private String name;
|
||||
|
||||
/** 粒径 */
|
||||
@ApiModelProperty(value = "粒径", position = 3)
|
||||
private String rockSize;
|
||||
|
||||
/** 混凝土强度等级 */
|
||||
@ApiModelProperty(value = "混凝土强度等级", position = 4)
|
||||
private String concreteStrength;
|
||||
|
||||
/** 水泥强度等级 */
|
||||
@ApiModelProperty(value = "水泥强度等级", position = 5)
|
||||
private String cementStrength;
|
||||
|
||||
/** 水泥 */
|
||||
@ApiModelProperty(value = "水泥", position = 6)
|
||||
private String ratioCement;
|
||||
|
||||
/** 中粗砂 */
|
||||
@ApiModelProperty(value = "中粗砂", position = 7)
|
||||
private String ratioSand;
|
||||
|
||||
/** 碎砾石 */
|
||||
@ApiModelProperty(value = "碎砾石", position = 8)
|
||||
private String ratioRock;
|
||||
|
||||
/** 片石 */
|
||||
@ApiModelProperty(value = "片石", position = 9)
|
||||
private String ratioRubble;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 混凝土比例Id参数
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
@Getter
|
||||
@Setter
|
||||
public class RatioConcreteIdParam {
|
||||
|
||||
/** id */
|
||||
@ApiModelProperty(value = "id", required = true)
|
||||
@NotBlank(message = "id不能为空")
|
||||
private String id;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 混凝土比例查询参数
|
||||
*
|
||||
* @author han0
|
||||
* @date 2025/01/15 10:23
|
||||
**/
|
||||
@Getter
|
||||
@Setter
|
||||
public class RatioConcretePageParam {
|
||||
|
||||
/** 当前页 */
|
||||
@ApiModelProperty(value = "当前页码")
|
||||
private Integer current;
|
||||
|
||||
/** 每页条数 */
|
||||
@ApiModelProperty(value = "每页条数")
|
||||
private Integer size;
|
||||
|
||||
/** 排序字段 */
|
||||
@ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
|
||||
private String sortField;
|
||||
|
||||
/** 排序方式 */
|
||||
@ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
|
||||
private String sortOrder;
|
||||
|
||||
/** 关键词 */
|
||||
@ApiModelProperty(value = "关键词")
|
||||
private String searchKey;
|
||||
|
||||
/** 名称 */
|
||||
@ApiModelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/** 粒径 */
|
||||
@ApiModelProperty(value = "粒径")
|
||||
private String rockSize;
|
||||
|
||||
/** 混凝土强度等级 */
|
||||
@ApiModelProperty(value = "混凝土强度等级")
|
||||
private String concreteStrength;
|
||||
|
||||
/** 水泥强度等级 */
|
||||
@ApiModelProperty(value = "水泥强度等级")
|
||||
private String cementStrength;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
|
||||
package mjkf.xinke.main.modular.ratioconcrete.service;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import mjkf.xinke.common.enums.CommonSortOrderEnum;
|
||||
import mjkf.xinke.common.exception.CommonException;
|
||||
import mjkf.xinke.common.page.CommonPageRequest;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.entity.RatioConcrete;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcreteAddParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcreteEditParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcreteIdParam;
|
||||
import mjkf.xinke.main.modular.ratioconcrete.param.RatioConcretePageParam;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 混凝土比例Service 类
|
||||
**/
|
||||
@Service
|
||||
public class RatioConcreteService extends ServiceImpl<BaseMapper<RatioConcrete>, RatioConcrete> {
|
||||
|
||||
|
||||
public Page<RatioConcrete> page(RatioConcretePageParam ratioConcretePageParam) {
|
||||
QueryWrapper queryWrapper = this.getQuery(ratioConcretePageParam);
|
||||
return this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
||||
}
|
||||
|
||||
public QueryWrapper<RatioConcrete> getQuery(RatioConcretePageParam ratioConcretePageParam) {
|
||||
QueryWrapper<RatioConcrete> queryWrapper = new QueryWrapper<>();
|
||||
if(ObjectUtil.isNotEmpty(ratioConcretePageParam.getName())) {
|
||||
queryWrapper.lambda().like(RatioConcrete::getName, ratioConcretePageParam.getName());
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(ratioConcretePageParam.getRockSize())) {
|
||||
queryWrapper.lambda().like(RatioConcrete::getRockSize, ratioConcretePageParam.getRockSize());
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(ratioConcretePageParam.getConcreteStrength())) {
|
||||
queryWrapper.lambda().like(RatioConcrete::getConcreteStrength, ratioConcretePageParam.getConcreteStrength());
|
||||
}
|
||||
if(ObjectUtil.isNotEmpty(ratioConcretePageParam.getCementStrength())) {
|
||||
queryWrapper.lambda().like(RatioConcrete::getCementStrength, ratioConcretePageParam.getCementStrength());
|
||||
}
|
||||
if(ObjectUtil.isAllNotEmpty(ratioConcretePageParam.getSortField(), ratioConcretePageParam.getSortOrder())) {
|
||||
CommonSortOrderEnum.validate(ratioConcretePageParam.getSortOrder());
|
||||
queryWrapper.orderBy(true, ratioConcretePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
|
||||
StrUtil.toUnderlineCase(ratioConcretePageParam.getSortField()));
|
||||
} else {
|
||||
queryWrapper.lambda().orderByAsc(RatioConcrete::getId);
|
||||
}
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public RatioConcrete add(RatioConcreteAddParam ratioConcreteAddParam) {
|
||||
RatioConcrete ratioConcrete = BeanUtil.toBean(ratioConcreteAddParam, RatioConcrete.class);
|
||||
this.save(ratioConcrete);
|
||||
return ratioConcrete;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public RatioConcrete edit(RatioConcreteEditParam ratioConcreteEditParam) {
|
||||
RatioConcrete ratioConcrete = this.queryEntity(ratioConcreteEditParam.getId());
|
||||
BeanUtil.copyProperties(ratioConcreteEditParam, ratioConcrete);
|
||||
this.updateById(ratioConcrete);
|
||||
return ratioConcrete;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void delete(List<RatioConcreteIdParam> ratioConcreteIdParamList) {
|
||||
for (var id : CollStreamUtil.toList(ratioConcreteIdParamList, RatioConcreteIdParam::getId)) {
|
||||
this.removeById(id);
|
||||
}
|
||||
}
|
||||
|
||||
public RatioConcrete detail(RatioConcreteIdParam ratioConcreteIdParam) {
|
||||
return this.queryEntity(ratioConcreteIdParam.getId());
|
||||
}
|
||||
|
||||
public RatioConcrete queryEntity(Serializable id) {
|
||||
RatioConcrete ratioConcrete = this.getById(id);
|
||||
if(ObjectUtil.isEmpty(ratioConcrete)) {
|
||||
throw new CommonException("混凝土比例不存在,id值为:{}", id);
|
||||
}
|
||||
return ratioConcrete;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user