feat():新增计划字段,枚举类转换

This commit is contained in:
Allenxy
2024-10-09 17:01:49 +08:00
parent 02ad2d2f1f
commit ffaabd025b
74 changed files with 427 additions and 16 deletions

View File

@@ -0,0 +1,30 @@
package com.fizz.business.constants.enums;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum NextUnitEnum {
COLD(1,"冷硬卷"),
HOT(2,"退火卷"),
OTHER(3,"其他");
private final int code;
private final String name;
// 静态方法,通过 code 获取枚举实例
public static NextUnitEnum fromCode(int code) {
for (NextUnitEnum unit : values()) {
if (unit.getCode() == code) {
return unit;
}
}
throw new IllegalArgumentException("Invalid code: " + code);
}
}

View File

@@ -0,0 +1,30 @@
package com.fizz.business.constants.enums;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum OperModeEnum {
FORCE(1,"轧制力模式"),
ELONG(2,"延伸率模式");
private final int code;
private final String name;
// 静态方法,通过 code 获取枚举实例
public static OperModeEnum fromCode(int code) {
for (OperModeEnum modeEnum : values()) {
if (modeEnum.getCode() == code) {
return modeEnum;
}
}
throw new IllegalArgumentException("Invalid code: " + code);
}
}

View File

@@ -0,0 +1,32 @@
package com.fizz.business.constants.enums;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum PlanStatusEnum {
NEW("NEW","新计划"),
READY("READY","准备好"),
ONLINE("ONLINE","上线"),
PRODUCING("PRODUCING","生产中"),
PRODUCT("PRODUCT","生产完成");
private final String status;
private final String name;
// 根据状态码获取对应的枚举
public static PlanStatusEnum fromStatus(String status) {
for (PlanStatusEnum planStatus : PlanStatusEnum.values()) {
if (planStatus.getStatus().equals(status)) {
return planStatus;
}
}
throw new IllegalArgumentException("Invalid status: " + status);
}
}

View File

@@ -3,6 +3,7 @@ package com.fizz.business.controller;
import com.fizz.business.domain.CrmPdiPlan;
import com.fizz.business.form.PlanQueryForm;
import com.fizz.business.service.CrmPdiPlanService;
import com.fizz.business.vo.CrmPdiPlanVO;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.R;
import io.swagger.annotations.Api;
@@ -23,7 +24,7 @@ public class CrmPdiPlanController {
@GetMapping("/get/{coilid}")
@ApiOperation("通过钢卷号查询计划")
public R<CrmPdiPlan> getByCoilId(@PathVariable String coilid) {
public R<CrmPdiPlanVO> getByCoilId(@PathVariable String coilid) {
return R.ok(crmPdiPlanService.getByCoilIdAndOperId(coilid));
}
@@ -48,7 +49,7 @@ public class CrmPdiPlanController {
@PostMapping("/list")
@ApiOperation("查询计划列表")
public R<List<CrmPdiPlan>> list(@RequestBody PlanQueryForm form) {
public R<List<CrmPdiPlanVO>> list(@RequestBody PlanQueryForm form) {
return R.ok(crmPdiPlanService.listAll(form));
}
}

View File

@@ -2,6 +2,9 @@ package com.fizz.business.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fizz.business.constants.enums.NextUnitEnum;
import com.fizz.business.constants.enums.OperModeEnum;
import com.fizz.business.constants.enums.PlanStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,13 +20,16 @@ public class CrmPdiPlan implements Serializable {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "")
@ApiModelProperty(value = "序号")
private Integer seqid;
@ApiModelProperty(value = "多火轧制次数")
private Integer operid;
@ApiModelProperty(value = "卷ID")
@ApiModelProperty(value = "轧制模式")
private OperModeEnum operMode;
@ApiModelProperty(value = "钢卷id")
private String coilid;
@ApiModelProperty(value = "热轧卷ID")
@@ -57,12 +63,12 @@ public class CrmPdiPlan implements Serializable {
private String exitCoilid;
@ApiModelProperty(value = "下工序代码")
private String nextUnit;
private NextUnitEnum nextUnit;
@ApiModelProperty(value = "数量")
@ApiModelProperty(value = "数量")
private Integer splitNum;
@ApiModelProperty(value = "模式")
@ApiModelProperty(value = "切模式")
private Integer cutMode;
@ApiModelProperty(value = "出口重量1")
@@ -95,7 +101,7 @@ public class CrmPdiPlan implements Serializable {
@ApiModelProperty(value = "出口宽度")
private Float exitWidth;
@ApiModelProperty(value = "等级")
@ApiModelProperty(value = "钢种")
private String grade;
@ApiModelProperty(value = "屈服强度")
@@ -105,7 +111,25 @@ public class CrmPdiPlan implements Serializable {
private Integer tensileStrength;
@ApiModelProperty(value = "状态")
private String status;
private PlanStatusEnum status;
@ApiModelProperty(value = "计划号")
private String planNo;
@ApiModelProperty(value = "压下率")
private Float reductionRate;
@ApiModelProperty(value = "热卷温度")
private Float hotCoilTemp;
@ApiModelProperty(value = "厚度正偏差")
private Float entryThickMaxtol;
@ApiModelProperty(value = "厚度正偏差")
private Float entryThickMintol;
@ApiModelProperty(value = "计划日期")
private LocalDateTime createTime;
@ApiModelProperty(value = "记录日期")
private LocalDateTime insdate;

View File

@@ -0,0 +1,39 @@
package com.fizz.business.interceptor;
import com.fizz.business.constants.enums.NextUnitEnum;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.springframework.context.annotation.Configuration;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Configuration
public class NextUnitEnumTypeHandler extends BaseTypeHandler<NextUnitEnum> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, NextUnitEnum parameter, JdbcType jdbcType) throws SQLException {
ps.setInt(i, parameter.getCode()); // 存入数据库时存储code值
}
@Override
public NextUnitEnum getNullableResult(ResultSet rs, String columnName) throws SQLException {
int code = rs.getInt(columnName);
return NextUnitEnum.fromCode(code); // 从数据库读取时根据code值获取枚举
}
@Override
public NextUnitEnum getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
int code = rs.getInt(columnIndex);
return NextUnitEnum.fromCode(code);
}
@Override
public NextUnitEnum getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
int code = cs.getInt(columnIndex);
return NextUnitEnum.fromCode(code);
}
}

View File

@@ -0,0 +1,39 @@
package com.fizz.business.interceptor;
import com.fizz.business.constants.enums.OperModeEnum;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.springframework.context.annotation.Configuration;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Configuration
public class OperModeEnumTypeHandler extends BaseTypeHandler<OperModeEnum> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, OperModeEnum parameter, JdbcType jdbcType) throws SQLException {
ps.setInt(i, parameter.getCode()); // 将枚举值的 code 存储到数据库中
}
@Override
public OperModeEnum getNullableResult(ResultSet rs, String columnName) throws SQLException {
int code = rs.getInt(columnName);
return OperModeEnum.fromCode(code); // 从数据库中读取 code 并返回对应的枚举
}
@Override
public OperModeEnum getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
int code = rs.getInt(columnIndex);
return OperModeEnum.fromCode(code);
}
@Override
public OperModeEnum getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
int code = cs.getInt(columnIndex);
return OperModeEnum.fromCode(code);
}
}

View File

@@ -0,0 +1,39 @@
package com.fizz.business.interceptor;
import com.fizz.business.constants.enums.PlanStatusEnum;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.springframework.context.annotation.Configuration;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Configuration
public class PlanStatusEnumTypeHandler extends BaseTypeHandler<PlanStatusEnum> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, PlanStatusEnum parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, parameter.getStatus()); // 将枚举的status字段存储到数据库
}
@Override
public PlanStatusEnum getNullableResult(ResultSet rs, String columnName) throws SQLException {
String status = rs.getString(columnName);
return PlanStatusEnum.fromStatus(status); // 根据数据库中的status字段值返回对应的枚举
}
@Override
public PlanStatusEnum getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String status = rs.getString(columnIndex);
return PlanStatusEnum.fromStatus(status);
}
@Override
public PlanStatusEnum getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String status = cs.getString(columnIndex);
return PlanStatusEnum.fromStatus(status);
}
}

View File

@@ -3,12 +3,13 @@ package com.fizz.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fizz.business.domain.CrmPdiPlan;
import com.fizz.business.form.PlanQueryForm;
import com.fizz.business.vo.CrmPdiPlanVO;
import java.util.List;
public interface CrmPdiPlanService extends IService<CrmPdiPlan> {
public CrmPdiPlan getByCoilIdAndOperId(String coilid);
public CrmPdiPlanVO getByCoilIdAndOperId(String coilid);
public boolean addCrmPdiPlan(CrmPdiPlan crmPdiPlan);
@@ -16,5 +17,5 @@ public interface CrmPdiPlanService extends IService<CrmPdiPlan> {
public boolean deleteCrmPdiPlan(List<Long> coilid);
public List<CrmPdiPlan> listAll(PlanQueryForm form);
public List<CrmPdiPlanVO> listAll(PlanQueryForm form);
}

View File

@@ -1,11 +1,13 @@
package com.fizz.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fizz.business.domain.CrmPdiPlan;
import com.fizz.business.form.PlanQueryForm;
import com.fizz.business.mapper.CrmPdiPlanMapper;
import com.fizz.business.service.CrmPdiPlanService;
import com.fizz.business.vo.CrmPdiPlanVO;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -20,10 +22,12 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl<CrmPdiPlanMapper, CrmPdiP
* @param coilid 卷ID
* @return 查询到的CrmPdiPlan对象
*/
public CrmPdiPlan getByCoilIdAndOperId(String coilid) {
public CrmPdiPlanVO getByCoilIdAndOperId(String coilid) {
QueryWrapper<CrmPdiPlan> queryWrapper = new QueryWrapper<>();
queryWrapper.like("coilid", coilid);
return this.getOne(queryWrapper);
CrmPdiPlan one = this.getOne(queryWrapper);
return BeanUtil.copyProperties(one, CrmPdiPlanVO.class);
}
/**
@@ -59,10 +63,11 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl<CrmPdiPlanMapper, CrmPdiP
* 查询所有记录
* @return CrmPdiPlan对象的列表
*/
public List<CrmPdiPlan> listAll(PlanQueryForm form) {
public List<CrmPdiPlanVO> listAll(PlanQueryForm form) {
QueryWrapper<CrmPdiPlan> queryWrapper = new QueryWrapper<>();
queryWrapper.in("STATUS", "NEW","READY");
return this.list();
return BeanUtil.copyToList(this.list(), CrmPdiPlanVO.class);
}
}

View File

@@ -0,0 +1,140 @@
package com.fizz.business.vo;
import com.fizz.business.constants.enums.NextUnitEnum;
import com.fizz.business.constants.enums.OperModeEnum;
import com.fizz.business.constants.enums.PlanStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class CrmPdiPlanVO {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "序列号")
private Integer seqid;
@ApiModelProperty(value = "多火轧制次数")
private Integer operid;
@ApiModelProperty(value = "轧制模式")
private OperModeEnum operMode;
@ApiModelProperty(value = "卷ID")
private String coilid;
@ApiModelProperty(value = "热轧卷ID")
private String hotCoilid;
@ApiModelProperty(value = "道次数")
private Integer passno;
@ApiModelProperty(value = "退火厚度")
private Integer annealThick;
@ApiModelProperty(value = "入口厚度")
private Float entryThick;
@ApiModelProperty(value = "入口宽度")
private Float entryWidth;
@ApiModelProperty(value = "入口重量")
private Float entryWeight;
@ApiModelProperty(value = "入口长度")
private Float entryLength;
@ApiModelProperty(value = "入口内径")
private Integer entryInnerDiameter;
@ApiModelProperty(value = "入口外径")
private Integer entryOuterDiameter;
@ApiModelProperty(value = "出口卷号")
private String exitCoilid;
@ApiModelProperty(value = "下工序代码")
private NextUnitEnum nextUnit;
@ApiModelProperty(value = "分割数量")
private Integer splitNum;
@ApiModelProperty(value = "切割模式")
private Integer cutMode;
@ApiModelProperty(value = "出口重量1")
private Float exitValue1;
@ApiModelProperty(value = "出口重量2")
private Float exitValue2;
@ApiModelProperty(value = "出口重量3")
private Float exitValue3;
@ApiModelProperty(value = "出口重量4")
private Float exitValue4;
@ApiModelProperty(value = "出口重量5")
private Float exitValue5;
@ApiModelProperty(value = "出口重量6")
private Float exitValue6;
@ApiModelProperty(value = "出口重量")
private Float exitWeight;
@ApiModelProperty(value = "出口长度")
private Float exitLength;
@ApiModelProperty(value = "出口厚度")
private Float exitThick;
@ApiModelProperty(value = "出口宽度")
private Float exitWidth;
@ApiModelProperty(value = "钢种")
private String grade;
@ApiModelProperty(value = "屈服强度")
private Integer yieldStrength;
@ApiModelProperty(value = "抗拉强度")
private Integer tensileStrength;
@ApiModelProperty(value = "状态")
private PlanStatusEnum status;
@ApiModelProperty(value = "计划号")
private String planNo;
@ApiModelProperty(value = "压下率")
private Float reductionRate;
@ApiModelProperty(value = "热卷温度")
private Float hotCoilTemp;
@ApiModelProperty(value = "厚度正偏差")
private Float entryThickMaxtol;
@ApiModelProperty(value = "厚度正偏差")
private Float entryThickMintol;
@ApiModelProperty(value = "计划日期")
private LocalDateTime createTime;
@ApiModelProperty(value = "记录日期")
private LocalDateTime insdate;
@ApiModelProperty(value = "上线时间")
private LocalDateTime onlineTime;
@ApiModelProperty(value = "开始日期")
private LocalDateTime startDate;
@ApiModelProperty(value = "结束日期")
private LocalDateTime endDate;
}

View File

@@ -1,6 +1,7 @@
package com.ruoyi.framework.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
@@ -31,6 +32,14 @@ public class MybatisPlusConfig
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> {
// 自动扫描指定包路径下的TypeHandler
configuration.getTypeHandlerRegistry().register("com.fizz.business.interceptor");
};
}
/**
* 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html
*/

23
ruoyi-ui/.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
**/*.log
tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
package-lock.json
yarn.lock